7

我正在尝试从我的 javascript 客户端向休息服务发送 UTC 时间戳。我无法像"2013-08-30T19:52:28.226Z"使用 javascript 一样创建时间戳。

var rawDate = date.getUTCDate().toString();

我看到了这个例子,但对我没有帮助。utc-time-same-javascript

4

5 回答 5

13

您可以使用date.toJSON().

new Date().toJSON()
"2013-08-31T09:05:07.740Z"

请参阅MDNMSDN

于 2013-08-31T09:02:12.417 回答
1

1) 获取日期。

var now = new Date();

2) 转换为 UTC 格式,如下图,供参考

var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), 
                  now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());

3)使用toJSON,获取格式。

now_utc.toJSON()

最后,

var now = new Date();
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),  now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
alert(now_utc.toJSON());

检查这个JSFiddle

于 2013-08-31T09:13:04.127 回答
1
function getUTCISODateString(d){
     function pad(n){return n<10 ? '0'+n : n};
     function threePad(n){return n<10 ? '00'+n : (n < 100 ? '0' + n : n)};
     return d.getUTCFullYear()+'-'
          + pad(d.getUTCMonth()+1)+'-'
          + pad(d.getUTCDate())+'T'
          + pad(d.getUTCHours())+':'
          + pad(d.getUTCMinutes())+':'
          + pad(d.getUTCSeconds())+ '.'
                  + threePad(d.getUTCSeconds()) + 'Z';
}

未测试:

于 2013-08-31T09:14:08.163 回答
0

这个库可以为你做。也没有那么大http://momentjs.com

moment().toISOString() 
// 2013-02-04T22:44:30.652Z
于 2013-08-31T09:14:37.650 回答
0

我建议扩展 Date() 对象并自己构建字符串,时刻为您完成,但我不确定它是否符合您需要的确切格式。只是快速写了这个,但它应该是一个不错的入门样板。

Date.prototype.toLongUTCString = function () {
   var self = this;
   return self.getUTCFullYear() + '-' + (self.getUTCMonth() < 10 ? '0' : '') + 
          (self.getUTCMonth() +1)+ '-' + (self.getUTCDate() < 10 ? '0' : '') + 
          self.getUTCDate() + 'T' + self.getUTCHours() + ':' + self.getUTCMinutes() + 
          ':' + self.getUTCSeconds() + '.' + self.getUTCMilliseconds() + 'Z';
   };

看更多:

http://jsfiddle.net/4Kczy/

/edit:没有人问需要支持哪些浏览器(咳嗽,IE)。

于 2013-08-31T09:27:26.780 回答