2013-04-29 80 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()