首页 > 解决方案 > 如何使用 Date.toLocaleString() 更改时区

问题描述

我将开始日期和结束日期转换为 .ToLocalString,现在我正在尝试使用 math.abs 来计算开始日期和结束日期之间的数字差异,但它的值为 NaN。任何关于如何在这种情况下应用 Math.abs 的建议都值得赞赏。

注意:开始日期为美国东部时间,结束日期为美国东部时间。但他们可能在也可能不在同一时区。

var startDate1 = new Date(homeCtrl.createStartDate);
var startDate = startDate1.toLocaleString();

var endDate1 = new Date(homeCtrl.createEndDate);
var endDate = endDate1.toLocaleString();



var timeDiff = Math.abs(endDate - startDate);  //This is NaN
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));  // Here it will add 1 extra day. Example: 11/06/2018 - 11/04/2018 = 2 days but this gives 3days are timezone change on 11/04/2018 and thats the issue.

标签: javascriptdatetime

解决方案


我会使用unix时间戳。

var startDate1 = new Date(homeCtrl.createStartDate);
var startDate = startDate1.getTime();

var endDate1 = new Date(homeCtrl.createEndDate);
var endDate = endDate1.getTime();


var timeDiff = Math.abs(endDate - startDate);

推荐阅读