0

我有两个变量,日期和时间......

var date = "2012-12-05";
var time = "18:00";

如何将其格式化为 UTC 格式的日期。这样我就可以在 Facebook API 中使用它了。

Facebook 声明我需要这种格式:

精确时间(例如,'2012-07-04T19:00:00-0700'):在特定时间点开始的事件,在与 UTC 的特定偏移量中。这是新的 Facebook 事件跟踪时间的方式,并允许用户查看不同时区的事件。

任何帮助将不胜感激..谢谢!

4

2 回答 2

1

这种格式称为ISO 8601

你知道你在哪个时区吗?如果你这样做,你可以这样做:

var datetime = date + 'T' + time + ":00+0000';

如果时区为 +0。
如果没有,那么:

var d = new Date()
var n = d.getTimezoneOffset();
var timeZone = Math.floor( Math.abs( n/60 ) );
var timeZoneString = (d.getTimezoneOffset() < 0 ? '-' : '+' ) + ( timeZone < 10 ? '0' + timeZone : timeZone ) + '00';

var datetime = date + 'T' + time + ':00' + timeZoneString;

这是一个小提琴:http: //jsfiddle.net/ajySr/

于 2012-09-11T15:24:18.610 回答
1

尝试以下操作:

var date = new Date(2012, 12, 5, 18, 0, 0, 0); 
var date_utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());

Date功能可以通过以下方式使用:

var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

这取自此处的相关帖子:如何将 JavaScript 日期转换为 UTC?

要了解更多信息,请参阅:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

于 2012-09-11T15:25:58.080 回答