2013-04-29 77 views
1

我正在使用twitter搜索API製作一個簡單的twitter feed。 一切都很好,除了我從created_at得到的時間是例外時間的2個小時。 結果是一個字符串:「星期一,2013年4月29日11:29:40」(舉例)Twitter搜索API created_at添加小時Javascript

有人會知道一個很好的方法來添加2小時,使用javascript? 時間格式是hh:mm:ss,我顯然不希望它繼續像24:22:00或27:00:00這樣的時間。

在此先感謝。

+0

JavaScript有內置日期對象[檢查出來](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date) – Stasel 2013-04-29 12:27:11

+0

@Stasel我需要用戶的日期創建了推文,而不是生成的推文。 – Parrotmaster 2013-04-29 12:28:29

回答

0

我已經抽空從字符串,然後更新解決了它小時數爲2(或者在22或23時將其設置爲適當的值)。 對於那天我做的完全一樣,並在需要時更新到30。 字符串的大小從不改變,所以我可以輕鬆地選擇我想要的部分並將其更改爲我喜歡的部分。

謝謝大家的建議!

0

這聽起來像是一個時區問題。如果您只添加兩個小時,那麼您的代碼將不適用於與您不同的時區的用戶。 Javascript Date對象有一個可幫助您的getTimezoneOffset()方法。

+0

好吧,但我沒有使用Date對象,我實際上只是得到一個字符串,看起來像這樣:週一,2013年4月29日11:29:40 – Parrotmaster 2013-04-29 12:31:37

+0

正確,但你可以確定你正在接收的字符串的時區它位於您所在位置以西的兩個時區)。然後你可以得到一個Date對象並找到該Date的時區。從那裏,您可以比較Date對象的時區和您接收日期的(常量)時區,然後根據該時區加上或減去小時。 – user1 2013-04-29 14:56:36

1

粗JavaScript來做到這一點:

var dateTime = new Date("Mon, 29 Apr 2013 11:29:40"); 

var year = dateTime.getFullYear(); 
var month = dateTime.getMonth(); 
var date = dateTime.getDate(); 
var hours = dateTime.getHours(); 
var minutes = dateTime.getMinutes(); 
var seconds = dateTime.getSeconds(); 
var milliseconds = dateTime.getMilliseconds(); 

hours = hours + 2; 

var dateTime2 = new Date(year, month, date, hours, minutes, seconds, milliseconds); 

然後,您可以輸出日期:

dateTime2.toLocaleString()