Class Timestamp (7.9.0)

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.

Package

@google-cloud/firestore

Constructors

(constructor)(seconds, nanoseconds)

constructor(seconds: number, nanoseconds: number);

Creates a new timestamp.

Parameters
Name Description
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.

Example

let documentRef = firestore.doc('col/doc');

documentRef.set({ startTime:new Firestore.Timestamp(42, 0) });

Properties

nanoseconds

get 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`);
});

{number}

seconds

get 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`);
});

{number}

Methods

fromDate(date)

static fromDate(date: Date): Timestamp;

Creates a new timestamp from the given date.

Parameter
Name Description
date Date

The date to initialize the Timestamp from. {Timestamp} A new Timestamp representing the same point in time as the given date.

Returns
Type Description
Timestamp
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(milliseconds)

static fromMillis(milliseconds: number): Timestamp;

Creates a new timestamp from the given number of milliseconds.

Parameter
Name Description
milliseconds number

Number of milliseconds since Unix epoch 1970-01-01T00:00:00Z. {Timestamp} A new Timestamp representing the same point in time as the given number of milliseconds.

Returns
Type Description
Timestamp
Example

let documentRef = firestore.doc('col/doc');

documentRef.set({ startTime:Firestore.Timestamp.fromMillis(42) });

isEqual(other)

isEqual(other: firestore.Timestamp): boolean;

Returns 'true' if this Timestamp is equal to the provided one.

Parameter
Name Description
other firestore.Timestamp

The Timestamp to compare against. {boolean} 'true' if this Timestamp is equal to the provided one.

Returns
Type Description
boolean
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.');
  }
});

now()

static now(): Timestamp;

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

Returns
Type Description
Timestamp
Example

let documentRef = firestore.doc('col/doc');

documentRef.set({ updateTime:Firestore.Timestamp.now() });

{Timestamp} A new Timestamp representing the current date.

toDate()

toDate(): Date;

Returns a new Date corresponding to this timestamp. This may lose precision.

Returns
Type Description
Date
Example

let documentRef = firestore.doc('col/doc');

documentRef.get().then(snap => {
  console.log(`Document updated at: ${snap.updateTime.toDate()}`);
});

{Date} JavaScript Date object representing the same point in time as this Timestamp, with millisecond precision.

toMillis()

toMillis(): number;

Returns the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.

Returns
Type Description
number
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}`);
});

{number} The point in time corresponding to this timestamp, represented as the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.

valueOf()

valueOf(): string;

Converts this object to a primitive string, which allows Timestamp objects to be compared using the >, <=, >= and > operators.

{string} a string encoding of this object.

Returns
Type Description
string