1. プログラムの内部タイムゾーンを UTC 時間に設定します (UTC は GMT とも呼ばれます) PHP 設定:
date_default_timezone_set("UTC");
config に 'timeZone'=> を追加します。 /main.php ;'UTC',
このように設定すると、PHP によって生成される時刻は基本的に UTC 時刻になります。 例:
//現在の UTC 時刻を出力します
date("Y-m-d H:i:s");
2. データベースに UTC 時間を保存します
。PHP またはデータベースのタイムゾーンを設定することで制御できます。
3. サーバーからフロントエンドに送信される時間は、UTC 時間形式です。 JSで現地時間に変換して表示します。JS内部データと表示データは分離しています。
コードをコピー
コードは以下の通りです:
/*** UTC 時間を現地時間に変換します * @param string utcTime utc 時間文字列形式: 'Y-m-d H:i:s' * @return string 現地時間文字列形式: 'Y-m-d H:i:s'
*/
function utcToLocal(utcTime) {
if(utcTime== ='0000-00-00 00:00:00' || utcTime===null || utcTime==='' || utcTime===未定義)
return utcTime;
var locTime = new Date(); //ローカル時間オブジェクト
utcTime=utcTime.replace("-", "/"); '-' で区切られた日付
//文字列と現地時間の割り当て
locTime.setTime(Date.parse(utcTime)-locTime.getTimezoneOffset()*60000);
//現地時間の文字列の書式設定
var year = locTime.getFull Year( );
var 月 = preZero(locTime.getMonth ()+1);
var 時間 = preZero(locTime.getHours()); .getMinutes());
var 秒 = preZero (locTime.getSeconds());
年+'-'+月+'-'+日付+' '+時間+':'+分+':'+秒; /**
* 現地時間を UTC 時間に変換します
* @param string locTime utc 時間文字列形式: 'Y-m-d H:i:s'
* @return string 現地時刻文字列形式: 'Y-m-d H:i:s'
*/
function localToUtc (locTime) {
if(locTime==='0000-00-00 00:00:00' || locTime==='0000-00-00' || locTime ===null || locTime===' || locTime===未定義)
var tmpTime = new Date();
locTime=locTime.replace(" -", "/").replace(" -", "/"); //Firefox は「-」で区切られた日付と互換性がありません
//文字列を解析します
tmpTime.setTime(Date.parse(locTime));
if(locTime.length>10) {
var year = tmpTime.getUTCFull Year();
var month = preZero(tmpTime.getUTCMonth()+1);
var date = preZero(tmpTime.getUTCDate()); = preZero(tmpTime.getUTCHours());
var 分 = preZero(tmpTime.getUTCSeconds());
return year+'-'+month+'-'+date + ' '+時+':'+分+':' +秒;
} else {
//日付を設定し、現地時間を保持します(UTC変換用)
utcTime.setFull Year(tmpTime.getFull Year()); setMonth(tmpTime.getMonth());utcTime.setMonth( tmpTime.getMonth()) //? 繰り返されない場合、割り当ては無効です
utcTime.setDate(tmpTime.getDate());
var year = utcTime .getUTCFulyear();
var month = preZero(utcTime.getUTCDate());
return year+'-'+month+'-'+date; }
//単一の数値に先頭の 0 を追加します
function preZero(str) {
return str.toString().length
http://www.bkjia.com/PHPjc/326372.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326372.html
技術記事
1. プログラムの内部タイムゾーンを UTC 時間に設定します (UTC は GMT とも呼ばれます)。 PHP 設定: date_default_timezone_set("UTC"); Yii 設定: 'timeZone'='UTC' を config/main.php に追加します。 , このように設定した後...