javascript - 如何使用 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.
解决方案
我会使用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);