2

私はこの形式で日付/時刻を提供しました:2012-10-14T06:00

次のようにデータを作り直すことができます:6:00am

<?php
function formatDate($date, $format){
    $output = date($format, strtotime($date));
    return $output;
}
?>

<?php echo formatDate('2012-10-14T06:00', 'g:ia'); ?>

出力:6:00am

これは素晴らしいですが、どうすればオフセットを調整できますか

date_default_timezone_set('America / Los_Angeles');

また

date_default_timezone_set('ヨーロッパ/アムステルダム);

これはユーザーのタイムゾーンに設定されます(ユーザーが選択したものは何でも)-時間は元のタイムゾーンデータと提供されたユーザーの間でオフセットする必要があります('ヨーロッパ/アムステルダム)

したがって、デフォルトのタイムゾーンを別の国に設定した場合、そのタイムゾーンのオフセットに応じて、時刻は8:00amまたは4:00amになります。

基本タイムゾーンは常にXXXX-XX-XXTXX:XX形式になります。

どんな助けでも大歓迎です

4

1 に答える 1

4

DateTimeオブジェクトを使用します。オフセットを手動で抽出しても、日中の節約やその他の癖は考慮されません。

// use the the appropriate timezone for your stamp
$timestamp = DateTime::createFromFormat('Y-m-d\TH:i', '2012-10-14T06:00', new DateTimeZone('UTC'));
// set it to whatever you want to convert it
$timestamp->setTimeZone(new DateTimeZone('Europe/Amsterdam'));
print $timestamp->format('Y-m-d H:i:s');
于 2012-10-17T06:10:22.823 に答える