首页 > 解决方案 > 服务器端的 toLocaleString 日期格式错误

问题描述

在服务器端使用它(一个 Firebase 函数,nodejs

   var d=new Date();
   var date = d.toLocaleString('default', { month: 'long'}) + ", " + d.getFullYear();

我期待得到March, 2020,因为这是我在JS客户端得到的,但是当在服务器端运行时,我得到 - M03, 2020

标签: node.jsfirebasegoogle-cloud-functions

解决方案


我尝试了以下代码:

const date = require('date-and-time');

var d = new Date();

var myDate = d.toLocaleString('default', { month: 'long'}) + ", " + d.getFullYear();

console.log(myDate);

输出:

March, 2020

现在,如果您尝试将 JavascriptDate对象存储到 Firebase 中,该对象将作为Timestamp对象存储。我认为这可以解释为什么您注意到格式存在一些差异的原因。

或者,您可以将Date对象转换为StringFirebase 并将其存储在 Firebase 中。这比ISO 8601Timestamp - 0001-01-01T00:00:00Z更易读

您可以在以下有关时间戳数据类型的文档中阅读更多相关信息。此外,如果需要转换,则存在一个返回与某个时间戳对应的新日期的Timestamp内置方法。toDate()


推荐阅读