检查现有日期对象在UTC -JavaScript中



我使用JavaScript函数将日期转换为UTC日期如下:

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中时,就会出现问题。由于我不知道用户是否会在UTC/本地日期调用此方法,因此我要确保仅在不在UTC中的转换才会发生。请帮助。

javascript Date对象具有方法getTimezoneOffset()。您可以使用它。或使用getUTC*方法:

 var d = new Date();
 var utcyear = d.getUTCFullYear();

所有日期都有UTC时间值。主机中创建的日期对象根据系统设置给出了仅读取时区偏移,并且使用getDate,gethours等读取的值基于该偏移。

自从时代以来想要UTC毫秒,只需使用getTime()方法即可。另外,还有UTC方法,GetUtcday,GetUtchours等来构建您自己的格式化字符串。

最后,有toisostring应该返回UTC的ISO格式日期字符串,但可能缺少不那么旧的浏览器的支持。

一些示例

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

var date = new Date(Date.UTC(2012, 10, 6, 15, 45, 1));

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

var isoString = date.toISOString();

以毫秒(自1970-01-01t00:00:00:00 Z以来的MS)获得UTC时间值:

var timeValue = date.getTime();

将该时间值转回本地日期对象:

var date = new Date(timeValue);

最新更新