我正在使用JavaScript和JQuery。我正在尝试计算机器上当前时间与以下格式的给定时间之间的时差。
December 12 2015 14:00:00 UTC-0800
以上格式包含TimeZone,问题是,它可以是上述时间格式的任何时区。
是否有任何预定义的函数可以轻松计算时差?
答案 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;