计算相同或不同TimeZone之间的时差

时间:2015-12-03 21:40:41

标签: javascript jquery

我正在使用JavaScript和JQuery。我正在尝试计算机器上当前时间与以下格式的给定时间之间的时差。

December 12 2015 14:00:00 UTC-0800

以上格式包含TimeZone,问题是,它可以是上述时间格式的任何时区。

是否有任何预定义的函数可以轻松计算时差?

1 个答案:

答案 0 :(得分:0)

如果 moment.js是一个选项,您可以使用它来解析时间字符串,并检索时区更正的Date对象。你可以将它与当地时间进行比较:



var datestr = "December 12 2015 14:00:00 UTC-0800";

// get target time as a JavaScript Date
var m = moment(datestr, "MMMM DD YYYY HH:mm:ss [UTC]Z").toDate();

var now = new Date();   // current time as a Date 

// get the difference (in milliseconds) between the two
var diffInMs = m - now;

// use moment.duration to display it in a readable form
var dur = moment.duration(diffInMs, "ms");
console.log( dur.humanize() );

var hours = Math.floor( diffInMs / (1000 * 60 * 60) );
var seconds = Math.floor( diffInMs / 1000 );

console.log( "hours: " + hours );
console.log( "seconds: " + seconds );

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
&#13;
&#13;
&#13;