2012-09-11 101 views
0

我有兩個變量,日期&時間...轉換日期和時間爲UTC格式的日期 - 使用Javascript

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

我如何格式化這個爲UTC格式的日期。這是這樣我就可以了Facebook API中使用它..

Facebook的規定,我需要它的格式如下:

精確時間(例如, '2012-07-04T19:00:00-0700' ):在特定時間點開始的事件,與UTC有特定的偏移量。這是Facebook新事件跟蹤時間的方式,並允許用戶查看不同時區的事件。

任何幫助將不勝感激..謝謝!

+0

的可能的複製[如何格式化一個JavaScript日期(http://stackoverflow.com/questions/3552461/how-to- format-a-javascript-date) –

回答

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/

+0

有什麼辦法可以自動獲取時區? – Danny

+1

有'getTimezoneOffset'函數:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset – Chase

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

相關問題