Timestamp datatype in Typescript

In my TypeScript code, I’m trying to set a Timestamp field to null or a blank value, but when I assign it undefined, the field is automatically set to January 1, 1970. How can I properly set the Timestamp field to null or blank without it defaulting to the Unix epoch date?

In TypeScript, if a Timestamp field defaults to January 1, 1970 (the Unix epoch), it’s because the system or underlying database interprets an undefined or an invalid date as 0, which corresponds to that epoch. You can set the Timestamp to null or to blank by:

explicitly setting the value to null

yourObject.timestampField = null

the class must be set to Date | null

interface YourObject {

timestampField: Date | null;

}

Or if you wat to use undefined

interface YourObject {

timestampField?: Date;

}

Don’t use undefined directly

yourObject.timestampField = undefined;

You should explicitly assign null rather than undefined.

Here’s how you can handle it:

  1. Set to null: If you want the field to explicitly have no value, set it to null. This is recognized by most systems as a valid “empty” state without triggering default behavior like the Unix epoch.
    myTimestampField = null;
    
  2. Check if the field can be null: Ensure that the field or type you’re working with allows null. If it’s a custom type, you might need to specify that the field can accept null.
    let myTimestampField: Date | null = null;
    

If you’re interacting with a system like a database that treats undefined as an instruction to set the default, using null explicitly should resolve this issue. If the field isn’t optional, and null isn’t permitted, make sure to update your schema or data handling logic to accept null where appropriate. (Look for default values as well)

1 Like