获取 d.getTime 不是一个函数



我试图获取时间戳的日期值。我想获取日期的 UTC 等效值,因为当前工作实现使用我的本地时区。我发现这种非常酷的方法可以做到这一点toUTCString()

给定以下代码行:

console.log("new Date(data[i].time).toUTCString()" , new Date(data[i].time).toUTCString());
console.log("new Date(data[i].time)" , new Date(data[i].time))
tempData.push(Object.assign({}, data[i], {'date': new Date(data[i].time).toUTCString()}));

其中控制台日志返回以下内容,我得到转换后的结果:

new Date(data[i].time).toUTCString() Wed, 06 Jun 2018 03:50:00 GMT
new Date(data[i].time) Wed Jun 06 2018 11:50:00 GMT+0800 (+08)

给我这个错误消息:

Uncaught (in promise) TypeError: d.getTime is not a function

作为进一步的研究,一些 SO 答案指出问题是因为它是一个字符串值,但我认为我使用正确的方法将其转换为 UTC。

我在这里错过了什么吗?谢谢!

我在运行 webpack 时自动生成了一个文件,这是根据错误定向我的行。

var discontinuousIndexCalculator = (0, _utils.slidingWindow)().windowSize(2).undefinedValue(function (d, idx, di) {
var i = di;
var row = {
date: d.getTime(),
startOf30Seconds: false,
startOfMinute: false,
startOf5Minutes: false,
startOf15Minutes: false,
startOf30Minutes: false,
startOfHour: false,
startOfEighthOfADay: false,
startOfQuarterDay: false,
startOfHalfDay: false,
startOfDay: true,
startOfWeek: false,
startOfMonth: false,
startOfQuarter: false,
startOfYear: false
};
var level = evaluateLevel(row, d, i);
return _extends({}, row, { index: i }, level);
});

你可以尝试类似的东西。

const data = [
{
time:new Date().getTime()
},
{
time:new Date().getTime()
},
{
time:new Date().getTime()
},
{
time:new Date().getTime()
},
{
time:new Date().getTime()
}
];
const dataWithString = [];
for(let i = 0; i< data.length;i++){
console.log(new Date(data[i].time).toUTCString()); //Something similar has you have

//Solution 1 create an other array and save the index to map each array;
dataWithString.push({
dateString:new Date(data[i].time).toUTCString(),
index:i
});

//Solution 2
data[i].dateString = new Date(data[i].time).toUTCString();
}
console.log("Results");
console.log(dataWithString);
console.log(data);

在这里的答案和 Tim 的评论中找到了我需要的东西。可能不是最好的解决方案,但这有效。这实际上给了我一个我需要的 Date 对象,而不是一个字符串值。

我使用:new Date(new Date().toUTCString().substr(0, 25));

最新更新