mysql データベースにタイムスタンプがあります。サーバー時間から現地時間に変換して、現地の言語で表示したい。
これは、タイム ゾーンを変換し、英語で表示するように機能します (ローカル タイム ゾーンと言語を選択する関数があります。ただし、以下では、タイム ゾーンと言語フィールドがハードコードされているかのようにコードを投稿します。)
date_default_timezone_set('Asia/Kuala_Lumpur');
$my_time = $row['timestamp'];
$my_time = new DateTime($my_time);
$my_time->setTimezone(new DateTimeZone('Europe/Rome'));
echo $my_time->format("F Y");
たとえば、「2013 年 8 月」は正しく表示されます。
しかし、タイムゾーンを変換してから現地の言語で表示することはできません。さまざまな方法を試しました。時々私は unix 時間を取得し、いくつかの方法で短い日付を取得します。私はこれを解決しようとして結び目に縛られています。
私が得た最高のものはこれでした(このサイトの関連する質問で見つけました):
date_default_timezone_set('Asia/Kuala_Lumpur');
$my_time = $row['timestamp'];
$oldLocale = setlocale(LC_TIME, 'it_IT');
echo strftime("%F %Y", $my_time);
setlocale(LC_TIME, $oldLocale);
しかし、運がありません。
何か案は?
ありがとう。