使用date-functions.js库解析UTC / GMT时间

时间:2018-03-14 11:11:11

标签: javascript date datetime time utc

使用date-functions.js库(例如在datetimepicker jQuery插件中使用)执行此操作:

Date.parseDate('2018-03-10 12:12', 'Y-m-d H:i')

给出:

Sat Mar 10 2018 12:12:00 GMT+0100 (Paris, Madrid)

如何将结果改为Unix时间戳或GMT / UTC时间?

3 个答案:

答案 0 :(得分:1)

类似于' 2018-03-10 12:12'通常会被解析为本地,因为没有时区偏移。它也不符合ISO 8601标准,因此使用内置解析器会在不同的浏览器中产生不同的结果。

虽然您可以使用库,将其解析为UTC并获取时间值只需2行代码:



char firstPlayerCards [5];
fgets(firstPlayerCards, sizeof(firstPlayerCards),stdin); /* it reads only 4 char as fgets() reads size minus one char from stream, if you want to read all char or more change the size of array */




答案 1 :(得分:0)

请改用MomentJS。您可以准确指定要解析的字符串的格式。MomentJS然后可以为您提供基础Date对象,unix时间戳以及转换为UTC。

var d = moment('2018-03-10 12:12', 'YYYY-MM-DD HH:mm');
console.log(d.toDate());
console.log(d.unix());
console.log(d.utc().toDate());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

您当然也可以将日期解析为UTC,而不是将其视为当地时间。

moment.utc('2018-03-10 12:12', 'YYYY-MM-DD HH:mm');

注意 我很难测试UTC,因为我在英国,而GMT和UTC 几乎相同。

答案 2 :(得分:0)

&#13;
&#13;
var date = new Date('2018-03-10 12:12'.replace(' ', 'T'));

// Unix
console.log(Math.floor(date.getTime() / 1000));
    
// UTC
console.log(date.toUTCString());
&#13;
&#13;
&#13;

与往常一样,请查看MDN上的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date