将日期和时间转换为UTC格式的日期 - Javascript

时间:2012-09-11 15:18:09

标签: javascript date datetime

我有两个变量,date&时间...

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

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

Facebook表示我需要这种格式:

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

任何帮助都将非常感谢..谢谢!

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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);

这是从相关帖子中获取的:How do you convert a JavaScript date to UTC?

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