1

私はFacebookAPIを使用しており、created_timeを2012-06-06T16:20:43+0000として取得しています

私はこのステータスを21:57頃に投稿しました(IST)

そして私は2012-06-06T16:20:43+0000を取得しています

正確な更新を取得するために私が投稿したのと同じ時間を取得するために、どんな助けもいただければ幸いです。

4

4 に答える 4

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;
于 2012-06-07T11:42:34.283 に答える
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;
于 2012-06-06T20:49:21.363 に答える
0

返される日付はUTC日時のようです。ローカルタイムゾーン(IST)に変換する必要があります...

phpを使用して日時を変換する方法については、次のSOの質問を参照してください 。phpは日時をUTCに変換します。

于 2012-06-06T16:36:44.097 に答える
-1

PHPのstrtotimecreated_timeを使用して、UNIXタイムスタンプに変換できます。次に、タイムゾーンオフセットを加算または減算できます(ISTはUTC + 05:30です)。

于 2012-06-06T16:36:19.563 に答える