Javascript 可靠地处理firebase函数中的日期时间
所以,我使用firebase实时数据库和firebase函数作为触发器 我们的应用程序存储每日分析数据。例如,今天发送的邮件总数。因此,在firebase DB中,我们创建了一个时间戳作为一天开始的节点。要计算的代码如下所示:Javascript 可靠地处理firebase函数中的日期时间,javascript,firebase,date,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Date,Firebase Realtime Database,Google Cloud Functions,所以,我使用firebase实时数据库和firebase函数作为触发器 我们的应用程序存储每日分析数据。例如,今天发送的邮件总数。因此,在firebase DB中,我们创建了一个时间戳作为一天开始的节点。要计算的代码如下所示: function findDayBegninning(date:any){ const ms = date.getTime(); const msPerDay = 86400 * 1000; return ms - (ms % msPerDay)
function findDayBegninning(date:any){
const ms = date.getTime();
const msPerDay = 86400 * 1000;
return ms - (ms % msPerDay);
}
问题是,我们不知道如何将其与特定时区对齐。例如,对于当前行为,即将出现的时间戳是
15610750000
格林尼治标准时间显示为2019年6月20日星期四下午5:00:00
所以,基本上在我的时区,一天被认为是从每天下午5点开始。这显然是一个问题,因为我需要它是凌晨12点(午夜)
那么,如何处理呢?只需添加(7*60*60*1000)即可
我担心这样做会使其他时区的每日统计出错JavaScript整数时间戳通常为UTC。您应该将它们存储在UTC时区中,并将它们转换为使用它们的客户端或服务器代码中的本地时区。上述代码位于服务器端,因此应该是正确的,因为getTime将以UTC为单位提供时间。但按照CA时区,每天下午5点结束一天。在实行夏时制的地方,一天并不都是24小时。偏移量会不时变化,因此,是的,您必须使用不同的偏移量,加上偏移量和DST观测的历史变化来适应每个地方的偏移量。考虑使用一个包含时区功能的库(可能利用IANA时区数据库),写下所有这些都是一项重要的任务。