时刻JS - UTC到本地时间戳失败比较

时间:2017-03-03 00:18:29

标签: javascript date timestamp momentjs utc

将UTC日期格式转换为时间戳时,此条件将始终失败

TextChanged

所以我尝试了这个但仍然失败了

TextBox

同样的事情

ToolStripTextBoxWithLabel

请帮助我理解这一点。

2 个答案:

答案 0 :(得分:1)

如果开始和结束是UTC时间,则使用moment.utc(start_time)moment.utc(stop_time)

但将UTC日期与本地日期进行比较似乎不合逻辑。这就是你正在尝试的东西。

答案 1 :(得分:1)

  

将UTC日期格式转换为时间戳时,此条件将始终失败

timestamp是代表日期或时间的任何东西,所以“2017-03-02T15:57:00Z”,“2017年3月2日16:44:02 GMT-0700(MST)”和1488498242256都是时间戳。

1488498242256代表“2017-03-02T23:44:02.256Z”,不在“2017-03-02T15:57:00Z”和“2017-03-02T17:51:00Z”之间,因此预期结果为你的测试是错误的。

  

所以我试过这个但仍然失败了

它没有失败,它正在返回预期的结果。

当你这样做时,说:

new Date(1488498242256)

然后创建一个Date实例,其时间值为1488498242256,表示“2017-03-02T23:44:02.256Z”。当您将此内容写入生成字符串的输出时,通常会调用 Date.prototype.toString ,并在浏览器开发人员确定的字符串中生成一个人性化格式的字符串。

通常,这意味着主机系统时区偏移量用于生成字符串,您会看到如下内容:

"Thu Mar 02 2017 16:44:02 GMT-0700 (MST)"

在SO上,控制台似乎使用 toISOString 而不是默认的 toString ,例如

var date = new Date(1488498242256);

// Standard output for the host environment
console.log(date);

// Call Date.prototype.toString specifically
console.log(date.toString());