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.

See also
https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto

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

static

fromDate(date) returns Timestamp

Creates a new timestamp from the given date.

Parameter

date

Date

The date to initialize the Timestamp from.

Returns

Timestamp 

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

static

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

Timestamp 

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

static

now() returns Timestamp

Creates a new timestamp with the current date, with millisecond precision.

Returns

Timestamp 

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 Timestamp to compare against.

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 this Timestamp, 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}`);
});