Timestamp
A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
Constructor
Timestamp
new Timestamp(seconds, nanoseconds)
Creates a new timestamp.
Parameter |
|
---|---|
seconds |
number The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. |
nanoseconds |
number The non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanoseconds values that count forward in time. Must be from 0 to 999,999,999 inclusive. |
Properties
nanoseconds
number
The non-negative fractions of a second at nanosecond resolution.
Example
let documentRef = firestore.doc('col/doc');
documentRef.get().then(snap => {
let updated = snap.updateTime;
console.log(`Updated at ${updated.seconds}s ${updated.nanoseconds}ns`);
});
seconds
number
The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.
Example
let documentRef = firestore.doc('col/doc');
documentRef.get().then(snap => {
let updatedAt = snap.updateTime;
console.log(`Updated at ${updated.seconds}s ${updated.nanoseconds}ns`);
});
Methods
fromDate
fromDate(date) returns Timestamp
Creates a new timestamp from the given date.
Parameter |
|
---|---|
date |
Date The date to initialize the |
- Returns
-
A new
Timestamp
representing the same point in time as the given date.
Example
let documentRef = firestore.doc('col/doc');
let date = Date.parse('01 Jan 2000 00:00:00 GMT');
documentRef.set({ startTime:Firestore.Timestamp.fromDate(date) });
fromMillis
fromMillis(milliseconds) returns Timestamp
Creates a new timestamp from the given number of milliseconds.
Parameter |
|
---|---|
milliseconds |
number Number of milliseconds since Unix epoch 1970-01-01T00:00:00Z. |
- Returns
-
A new
Timestamp
representing the same point in time as the given number of milliseconds.
Example
let documentRef = firestore.doc('col/doc');
documentRef.set({ startTime:Firestore.Timestamp.fromMillis(42) });
now
now() returns Timestamp
Creates a new timestamp with the current date, with millisecond precision.
- Returns
-
A new
Timestamp
representing the current date.
Example
let documentRef = firestore.doc('col/doc');
documentRef.set({ updateTime:Firestore.Timestamp.now() });
isEqual
isEqual(other) returns boolean
Returns 'true' if this Timestamp
is equal to the provided one.
Parameter |
|
---|---|
other |
any The |
- Returns
-
boolean
'true' if this
Timestamp
is equal to the provided one.
Example
let documentRef = firestore.doc('col/doc');
documentRef.get().then(snap => {
if (snap.createTime.isEqual(snap.updateTime)) {
console.log('Document is in its initial state.');
}
});
toDate
toDate() returns Date
Returns a new Date
corresponding to this timestamp. This may lose precision.
- Returns
-
Date
JavaScript
Date
object representing the same point in time as thisTimestamp
, with millisecond precision.
Example
let documentRef = firestore.doc('col/doc');
documentRef.get().then(snap => {
console.log(`Document updated at: ${snap.updateTime.toDate()}`);
});
toMillis
toMillis() returns number
Returns the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.
- Returns
-
number
The point in time corresponding to this timestamp, represented as the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.
Example
let documentRef = firestore.doc('col/doc');
documentRef.get().then(snap => {
let startTime = snap.get('startTime');
let endTime = snap.get('endTime');
console.log(`Duration: ${endTime - startTime}`);
});