将Facebook时区转换为我所在的当地时区

时间:2012-06-06 16:28:42

标签: php javascript facebook facebook-graph-api timezone

我正在使用facebook apis并将created_time作为 2012-06-06T16:20:43 + 0000

我已经发布了这个状态 21:57(IST)

我正在接受2012-06-06T16:20:43 + 0000

任何帮助将不胜感激,以获得我发布的相同时间以获得确切的更新。

4 个答案:

答案 0 :(得分:2)

您可以使用以下代码转换任何时区:

$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;

答案 1 :(得分:1)

我之前为此任务编写了一个函数,

我已根据您的需求更新了它,

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;

答案 2 :(得分:0)

看起来返回给您的日期是UTC日期时间。您需要将其转换为您当地的时区(IST)......

使用php查看以下SO问题以转换日期时间: php convert datetime to UTC

答案 3 :(得分:-1)

您可以使用PHP的strtotimecreated_time转换为UNIX时间戳。然后,您可以添加或减去时区偏移量(IST为UTC + 05:30)。