Timestamp
Source: 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.
Properties
new Timestamp(seconds, nanoseconds)
Creates a new timestamp.
Example
let documentRef = firestore.doc('col/doc');
documentRef.set({ startTime:new Firestore.Timestamp(42, 0) });
Parameters
| Name | Type | Optional | Description |
|---|---|---|---|
|
seconds |
|
|
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 |
|
|
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 updated = snap.updateTime;
console.log(`Updated at ${updated.seconds}s ${updated.nanoseconds}ns`);
});
Methods
fromDate(date) → Timestamp
Creates a new timestamp from 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) });
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
date |
Date |
|
The date to initialize the |
- Returns
-
A new
Timestamprepresenting the same point in time as the given date.
fromMillis(milliseconds) → Timestamp
Creates a new timestamp from the given number of milliseconds.
Example
let documentRef = firestore.doc('col/doc');
documentRef.set({ startTime:Firestore.Timestamp.fromMillis(42) });
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
milliseconds |
number |
|
Number of milliseconds since Unix epoch 1970-01-01T00:00:00Z. |
- Returns
-
A new
Timestamprepresenting the same point in time as the given number of milliseconds.
now() → Timestamp
Creates a new timestamp with the current date, with millisecond precision.
Example
let documentRef = firestore.doc('col/doc');
documentRef.set({ updateTime:Firestore.Timestamp.now() });
- Returns
-
A new
Timestamprepresenting the current date.
isEqual(other) → boolean
Returns '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.');
}
});
Parameter
| Name | Type | Optional | Description |
|---|---|---|---|
|
other |
any |
|
The |
- Returns
-
boolean'true' if this
Timestampis equal to the provided one.
toDate() → Date
Returns a new Date corresponding to this timestamp. This may lose
precision.
Example
let documentRef = firestore.doc('col/doc');
documentRef.get().then(snap => {
console.log(`Document updated at: ${snap.updateTime.toDate()}`);
});
- Returns
-
DateJavaScript
Dateobject representing the same point in time as thisTimestamp, with millisecond precision.
toMillis() → number
Returns 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}`);
});
- Returns
-
numberThe point in time corresponding to this timestamp, represented as the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.