我正在使用 facebook api 并将 created_time 设置为 2012-06-06T16:20:43+0000
我在 21:57 (IST) 左右发布了这个状态
我得到 2012-06-06T16:20:43+0000
任何帮助将不胜感激,以与我发布的时间相同以获得确切的更新。
我正在使用 facebook api 并将 created_time 设置为 2012-06-06T16:20:43+0000
我在 21:57 (IST) 左右发布了这个状态
我得到 2012-06-06T16:20:43+0000
任何帮助将不胜感激,以与我发布的时间相同以获得确切的更新。
您可以使用以下代码转换任何时区:
$timestamp = strtotime("2012-06-06T16:20:43+0000"); //here you put your string with the tie
$dtime = new DateTime();
$dtime->setTimestamp($timestamp);
$localtz = new DateTimeZone("Asia/Calcutta"); //choose the correct PHP timezone
$dtime->setTimeZone($localtz); //we apply the timezone
$stringtime = $dtime->format('Y-m-d\TH:i:sO'); //here you return the time in the same format as facebook
$unixtime = $dtime->format('U'); //here u get the unix timestamp format of the same string
print $stringtime;
我之前为此任务编写了一个函数,
我已根据您的需要对其进行了更新,
var fbDateFix = function(date){
var local = new Date(date.replace(/-/g,'/').replace('T',' ').replace('+0000',''));
local.setSeconds(local.getSeconds() + 19800);
return local;
}
var padZero = function(t){
if(t<10){
return '0' + t;
}
return t;
}
var d = fbDateFix('2012-06-06T16:20:43+0000');
console.log(d);
var month = padZero(+d.getMonth()+1);
var date = padZero(+d.getDate());
var hour = padZero(+d.getHours());
var min = padZero (+d.getMinutes());
var sec = padZero (+d.getSeconds());
console.log(d.getFullYear() + '-' + month + '-' + date + 'T' + hour + ':' + min + ':' + sec + '+0000')
编辑:
这在php中对我有用,
date_default_timezone_set('Asia/Calcutta');
$timestamp = strtotime('2012-06-06T16:20:43+0000');
$local_datetime = date('c',$timestamp);
echo $local_datetime;
看起来返回给您的日期是UTC日期时间。您需要将其转换为您当地的时区(IST)...
请参阅以下 SO 问题以使用 php 转换日期时间: php convert datetime to UTC
您可以使用 PHP 的strtotime转换created_time
为 UNIX 时间戳。然后您可以添加或减去您的时区偏移量(IST 是 UTC+05:30)。