Firestore: Convert time object to timestamp

Tags: , , , ,

I am using vue.js for my e-commerce project. I want to set the sale time limit in the firestore collection.

ex)If user want to stop to sell his or her product at 15:00, user can input 15:00.

Now I could set the time object in my collection. But I want to convert it to timestamp.

How can I achieve it?

I set this.limit like this way in the template tag.

<b-form-input type="time" v-model="limit"></b-form-input>

This is the script tag.

import fireApp from '@/plugins/firebase'
const firebase = require("firebase");
const db = firebase.firestore();
let id = String(id);
import ErrorBar from '@/components/ErrorBar'
import { SpringSpinner } from 'epic-spinners'

  export default {
    name: "Products",
    data() {
      return {
        show: false,
        quantity: "",
        initial: "",
        sale: "",
        limit: ""
    components: {
    created() {

    methods: {
        submitProduct() {
                var docRefLimit = db.collection('Profile').doc(user.uid).collection('Product').doc('limit')
                const timestamp = firebase.firestore.FieldValue.serverTimestamp()

                docRefLimit.get().then((doc) => {
                    if (doc.exists) {
                            limit: this.limit.timestamp,
                        }).then(() => {
                    } else {
                            limit: this.limit.timestamp,
                        .then(() => {
                }).catch((error) => {
                    console.log("Error getting document:", error);


You don’t indicate if the timestamp should take the date of the day.

So let’s imagine you want to add a Timestamp for today at 15:00 to a Firestore document. Do as follows:

  const limitHour = this.limit.substring(0, 2);
  const limitMinutes = this.limit.substring(3, 5);

  let today = new Date();
  today.setHours(limitHour, limitMinutes, 0, 0);

  var docRefLimit = db.collection('Profile').doc(user.uid).collection('Product').doc('limit');
  docRefLimit.update({ limit: today })
   .then(() => ...)

Note that firebase.firestore.FieldValue.serverTimestamp() “returns a sentinel used with set() or update() to include a server-generated timestamp in the written data” which will be calculated by the Firestore backend, not in the frontend.

Source: stackoverflow