PHPにおけるタイムスタンプと日付形式の変換(再掲)
1. PHP タイムスタンプ関数は、指定された日付の Unix タイムスタンプ strtotime("2009-1-22") を取得します。例は次のとおりです。
echo strtotime("2009-1) -22") 結果 : 1232553600
説明: 2009 年 1 月 22 日 0:00:00 のタイムスタンプを返します
2 番目に、英語のテキストの日付を取得するための PHP タイムスタンプ関数
比較を容易にするために、date を使用して現在のタイムスタンプと指定されたタイムスタンプをシステム時間に変換します
(1) 明日のこの時刻のタイムスタンプを出力します。 strtotime ("+1 日")
現在の時刻: echo date("Y-m-d H:i:s",time()) 結果: 2009-01-22 09:40:25
指定時刻: echo date("Y-m-d H :i:s",strtotime("+1 day")) 結果: 2009-01-23 09:40:25
(2) 昨日のタイムスタンプを出力します。この時点では strtotime(”-1 day” )
現在時刻: echo date("Y-m-d H:i:s",time()) 結果: 2009-01-22 09:40:25
指定時刻: echo date( "Y-m-d H:i:s",strtotime("-1 day")) 結果: 2009-01-21 09:40:25
(3) 印刷来週のこの時刻のタイムスタンプ strtotime( "+1 year")
現在時刻: echo date("Y-m-d H:i:s",time()) 結果: 2009-01-22 09:40 :25
指定 時刻: echo date("Y-m-d H:i:s",strtotime("+1week")) 結果: 2009-01-29 09:40:25
(4) 先週のこの時刻を出力 タイムスタンプ strtotime(”-1 週”)
現在時刻: echo date(”Y-m-d H:i:s”,time()) 結果: 2009-01-22 09:40:25
時刻の指定: echo date("Y-m-d H:i:s", strtotime("-1 year")) 結果: 2009-01-15 09:40:25
(5) Print 次の曜日のタイムスタンプを指定 strtotime("next Wednesday")
現在時刻: echo date("Y-m-d H:i:s",time()) 結果: 2009-01-22 09:40: 25
時刻指定: echo date("Y-m-d H:i:s",strtotime("next Wednesday")) 結果: 2009-01-29 00:00 :00
(6 ) 指定した曜日のタイムスタンプを出力します。 strtotime("last Wednesday")
現在時刻: echo date("Y-m-d H:i:s",time ()) 結果: 2009-01-22 09:40:25
時刻の指定: echo date("Y-m-d H:i:s",strtotime("last Wednesday")) 結果: 2009-01- 15 00:00:00
以降 PHP 時間 スタンプ関数の例からわかるように、strtotime は英語テキストの日付と時刻の記述を Unix タイムスタンプに解析できます。 mktime() または date() を組み合わせて実行します。必要な日付と時刻を実現するために、指定されたタイムスタンプを取得するように日付と時刻をフォーマットします。
例:
/*************************************************** ***********************
*
* Copyright (c) 2011 Baidu.com, Inc. All Rights Reserved
* $ Id$
*
***************************************** ********************************/
//タイムスタンプを日付に変換します
$date_time_array = getdate(1297845628); //1311177600 1316865566
$hours = $date_time_array["分"];
$秒 = $ date_time_array["秒"];
$month = $date_time_array["mday"];
$year = $date_time_array["mon"]; 🎜>
echo "年:$年月:$月日:$日時:$時間n分:$分n秒:$秒";
//通常の日付をタイムスタンプに変換します
echo mktime(0, 0) , 0, 9, 18, 2011) . "n";
エコー mktime(0, 0, 9, 25, 2011) . "n"; ; date("Y-m-d H:i:s", time()) . "n";
//この方法では、時間、分、秒が一緒に表示されます
echo "time() は年のみを表示しますmonth and day:" . date ("Y-m-d ", time()) . "n"; //年、月、日のみを表示
echo "タイムスタンプ形式:" . date("Y-m-d H: i:s", 1297845628) . "n"; //タイムスタンプを直接使用します
//通常の日付をタイムスタンプに変換します。ここに分と秒がある場合も同様です。
$year=((int) substr("2008-12-04",0,4));//取得年
$month=((int)substr("2008-12-04 ",5,2));/ /月を取得します
$day=((int)substr("2008-12-04",8,2));//日を取得します
echo mktime(0,0, 0,$month,$day,$year);
/* vim: set ts=4 sw=4 sts=4 tw=100 noet: */
?>
注意事項
PHP 時間には 2 つのタイプがあり、1 つはタイムスタンプ タイプ (1228348800) です。通常の日付形式 (2008-12-4)
php5.1以降のタイムスタンプは実際の時刻と8時間異なります。解決策は次のとおりです。
1.最も簡単な方法は、php5.1 以降のバージョンを使用しないことです。もちろん、これは選択肢ではありません。 ! !
2. php.ini を変更します。 php.ini を開き、date.timezone を検索します。先頭のセミコロン = を削除し、最後に Asia/Shanghai を追加します。欠点は、プログラム
が他の人のサーバーに配置されている場合です。 php.ini を変更することはできません。では、何ができるのでしょうか?
3. プログラムに時刻初期化ステートメント、つまり「date_default_timezone_set("Asia/Shanghai");」を追加します。これはプログラマが任意に設定できますので、これをお勧めします。
タイムゾーン識別子、中国本土で利用可能な値は次のとおりです: PRC、アジア/重慶、アジア/上海、アジア/ウルムチ (順に中国、重慶、上海、ウルムチ)、Etc/GMT-8、アジア/ハルビン
香港と台湾で利用可能: アジア/マカオ、アジア/香港、アジア/台北 (マカオ、香港、台北の順)
シンガポール: アジア/シンガポール
このように、成果は北京で達成できます