firebase 在云函数上将全球时间更改为本地时区

r7xajy2e  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(118)

我是Firebase云函数的新手。我做了这么简单的函数,我需要得到当前时间来转换我的时区。但是Firebase云函数的控制台给了我TypeError:currentTime.getDate(...).toLocaleDateString不是函数消息。
下面是我的代码:

exports.simdikizamanim = functions.database.ref('/users/{userId}/name').onCreate((snapshot, context) => {
// it works
const currentTime =  new Date()
const   currentDate = currentTime.getDate().toLocaleDateString('tr-TR', { timeZone: 'Europe/istanbul' });
const    currentMonth = currentTime.getMonth().toLocaleDateString('tr-TR', { timeZone: 'Europe/istanbul' });
const   currentYear = currentTime.getFullYear().toLocaleDateString('tr-TR', { timeZone: 'Europe/istanbul' });
  
const   currenthours = currentTime.getHours().toLocaleDateString('tr-TR', { timeZone: 'Europe/istanbul' });
const   currentminutes = currentTime.getMinutes().toLocaleTimeString('tr-TR', { timeZone: 'Europe/istanbul' });
const   currentsecond = currentTime.getMinutes().toLocaleTimeString('tr-TR', { timeZone: 'Europe/istanbul' });

const dateFormat = currentDate + " " + currentMonth + "" + currentYear + "T" + currenthours + ":" + currentminutes + ":" + currentsecond + "Z"

    console.log(dateFormat + " sad");

  });

我应该将dateFormat写入云函数的控制台。TypeError:currentTime.getDate(...).toLocaleDateString不是函数。它给了我信息。我该怎么解决?

iezvtpos

iezvtpos1#

查看您在Date对象上使用的getDate()方法的documentation。它说:
返回值
一个介于1和31之间的整数,根据本地时间表示给定日期的月份。如果日期无效,则返回NaN。
它返回一个数字。你不能对一个数字调用任何方法。这就是错误消息试图告诉你的--数字上没有函数toLocaleDateString
toLocaleDateString是Date对象上的一个方法,它已经存在于currentTime变量中。所以就像这样用你想要的参数调用它:

const currentDate currentTime.toLocaleDateString(...)

您对toLocaleDateString的其他调用也会遇到同样的问题,因为它们也试图调用一个数字的方法。

相关问题