Each block references its parent, so height is simply the count of links back to block 0. Because blocks arrive every ~10 minutes on average, height maps loosely to time — but the protocol never uses the calendar: halvings trigger at exact heights (the next at 1,050,000), and so do difficulty retargets.
The live height is on our dashboard, top bar, updating with every block. When someone says "see you at block 1,050,000", that is a date — written in bitcoin's own calendar.