アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

サーバ側で持っているあるUTC時間「2011-06-22 13:20」(左記は例です)を
を基にアクセスしてきたクライアントの国のタイムゾーンに合わせて表示させたいと
考えておりまが、PHPでそのような処理は可能でしょうか?

(例えば上記の時間を日本時間に直す場合は、2011-06-22 13:20に対して+9時間として処理)

宜しくお願いいたします。

A 回答 (2件)

PHPのバージョンはいくつでしょう?


私の環境で実行したら、次のような結果になりました。
Asia/Tokyo が、クライアントのタイムゾーンです。

問題は、タイムゾーンの判定です。
それを渡す方法がないと使えませんね。
クライアントごとのタイムゾーンをテーブルで管理するのもいやですよね。

<?php
$d = new DateTime('2011-06-22 13:20', new DateTimeZone('UTC'));
var_dump($d);
$d->setTimeZone(new DateTimeZone('Asia/Tokyo'));
var_dump($d);
?>

object(DateTime)#1 (3) {
["date"]=>
string(19) "2011-06-22 13:20:00"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
object(DateTime)#1 (3) {
["date"]=>
string(19) "2011-06-22 22:20:00"
["timezone_type"]=>
int(3)
["timezone"]=>
string(10) "Asia/Tokyo"
}
    • good
    • 0

こんなんで、どうでしょう?



<?php
$d = new DateTime('2011-06-22 13:20', new DateTimeZone('UTC'));
var_dump($d);
$d->setTimeZone(new DateTimeZone('Asia/Tokyo'));
var_dump($d);
?>
    • good
    • 0
この回答へのお礼

早速ありがとう御座います。
この内容では配列の中身は空でした。
DateTimeの第一引数(2011-06-22 13:20)のフォーマットに問題があるのでしょうか?

また、3行目でnew DateTimeZone('Asia/Tokyo')と指定しておりますが、
この内容で、例えば国外からのアクセスがあってもその国にあった時間に変更されますでしょうか?

お礼日時:2011/08/12 18:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!