首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查现有日期对象是否在UTC - Javascript中

检查现有日期对象是否在UTC - Javascript中
EN

Stack Overflow用户
提问于 2012-11-06 17:22:23
回答 2查看 2.3K关注 0票数 3

我使用Javascript函数将日期转换为UTC日期,如下所示:

代码语言:javascript
复制
Date.prototype.convertToUTC = function () {
var month = this.getMonth();
var day = this.getDate();
var year = this.getFullYear();
return new Date(Date.UTC(year, month, day));
}

现在,当应用此函数的日期已经是UTC时,问题就出现了。由于我不知道user是否会在UTC/Local date调用此方法,因此我希望确保只有当它不是UTC时才会发生转换。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-06 17:32:24

所有的日期都有一个UTC time value在他们的心脏。根据系统设置为在主机中创建的Date对象提供只读偏移量,使用getDategetHours等读取的值基于该偏移量。

如果您希望UTC毫秒数从纪元开始,只需使用getTime()方法即可。或者,也可以使用UTC方法、getUTCDaygetUTCHours等来构建您自己的格式化字符串。

最后,还有toISOString,它应该为UTC返回一个ISO格式的日期字符串,但在不是很老的浏览器中可能缺乏支持。

一些例子

要为2012-11-06T15:45:01Z创建本地日期对象:

代码语言:javascript
复制
var date = new Date(Date.UTC(2012, 10, 6, 15, 45, 1));

要从该(或任何) date对象中获取ISO日期字符串:

代码语言:javascript
复制
var isoString = date.toISOString();

要获取以毫秒为单位的UTC时间值(自1970-01-01T00:00:00Z以来的ms):

代码语言:javascript
复制
var timeValue = date.getTime();

要将该时间值转换回本地日期对象,请执行以下操作:

代码语言:javascript
复制
var date = new Date(timeValue);
票数 1
EN

Stack Overflow用户

发布于 2012-11-06 17:33:41

JavaScript Date对象具有getTimezoneOffset()方法。你可以用这个。或者使用getUTC*方法:

代码语言:javascript
复制
 var d = new Date();
 var utcyear = d.getUTCFullYear();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13247970

复制
相关文章

相似问题

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