我是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不是函数。它给了我信息。我该怎么解决?
1条答案
按热度按时间iezvtpos1#
查看您在Date对象上使用的getDate()方法的documentation。它说:
返回值
一个介于1和31之间的整数,根据本地时间表示给定日期的月份。如果日期无效,则返回NaN。
它返回一个数字。你不能对一个数字调用任何方法。这就是错误消息试图告诉你的--数字上没有函数
toLocaleDateString
。toLocaleDateString
是Date对象上的一个方法,它已经存在于currentTime
变量中。所以就像这样用你想要的参数调用它:您对
toLocaleDateString
的其他调用也会遇到同样的问题,因为它们也试图调用一个数字的方法。