首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用日期函数UTC库解析UTC/GMT时间

用日期函数UTC库解析UTC/GMT时间
EN

Stack Overflow用户
提问于 2018-03-14 11:11:10
回答 3查看 56关注 0票数 0

使用date-functions.js库(例如,在日期选择器jQuery插件中使用)可以这样做:

代码语言:javascript
复制
Date.parseDate('2018-03-10 12:12', 'Y-m-d H:i')

给予:

代码语言:javascript
复制
Sat Mar 10 2018 12:12:00 GMT+0100 (Paris, Madrid)

如何以Unix时间戳或GMT / UTC时间代替得到结果?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-14 13:20:07

像'2018-03-10 12:12‘这样的字符串通常会被解析为本地的,因为没有时区偏移。它也不符合ISO 8601,所以使用内置解析器会在不同的浏览器中产生不同的结果。

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

代码语言:javascript
复制
function toUTCTimeValue(s) {
  var b = s.split(/\D/);
  return Date.UTC(b[0],b[1]-1,b[2],b[3],b[4]);
}

// As time value
console.log(toUTCTimeValue('2018-03-10 12:12'));

// Convert to Date object and print as timestamp
console.log(new Date(toUTCTimeValue('2018-03-10 12:12')).toISOString());

票数 1
EN

Stack Overflow用户

发布于 2018-03-14 12:17:52

使用MomentJS代替。您可以确切地指定您正在解析的字符串的格式。然后,MomentJS可以为您提供底层的Date对象,unix时间戳,以及转换为UTC。

代码语言:javascript
复制
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());
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

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

代码语言:javascript
复制
moment.utc('2018-03-10 12:12', 'YYYY-MM-DD HH:mm');

注意到,当我在英国和格林尼治标准时间和UTC实际上是一样的时候,对我来说测试UTC有点困难。

票数 0
EN

Stack Overflow用户

发布于 2018-03-14 12:28:20

代码语言:javascript
复制
var date = new Date('2018-03-10 12:12'.replace(' ', 'T'));

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

一如既往,请查看MDN:对象/日期上的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49276225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档