ホームページ >バックエンド開発 >PHPチュートリアル >PHPでのタイムスタンプと日付形式の変換

PHPでのタイムスタンプと日付形式の変換

WBOY
WBOYオリジナル
2016-06-23 13:14:08915ブラウズ

まず、PHP タイムスタンプ関数は、指定された日付の UNIX タイムスタンプ strtotime("2009-1-22") を取得します。例は次のとおりです:

echo strtotime("2009-1-22") 結果: 1232553600

説明 : 2009 年 1 月 22 日 0:00:00 のタイムスタンプを返します

2 番目に、PHP タイムスタンプ関数は、次のように英語のテキストの日付と時刻の例を取得します。

簡単に比較するには、date を使用します。指定されたタイムスタンプを持つ現在のタイムスタンプをシステム時間に変換します

(1) この時点で明日のタイムスタンプを出力します 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-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 週間")

現在の時刻: echo date("Y-m-d H:i:s",time()) 結果: 2009-01-22 09:40:25

指定time: echo date("Y-m-d H:i:s",strtotime("+1 year")) Result: 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) 翌週の指定された曜日のタイムスタンプを出力します。 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(”次の木曜日”)) 結果:2009-01-29 00:00:00

(6) 指定した曜日のタイムスタンプを出力します。 strtotime("先週の木曜日")

現在時刻: 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 を組み合わせます。 () 形式の日付と時刻を使用して、指定されたタイムスタンプを取得し、必要な日付時刻を取得します。

例:






//タイムスタンプを日付に変換します
$date_time_array = getdate(1297845628) //1311177600 1316865566
$hours = $date_ time_array ["時間"];
$分= $date_time_array["分"];
$秒 = $date_time_array["秒"];
$月 = $date_time_array["月"];
$日 = $date_time_array["mday"];
$年 = $ date_time_array["年"];

echo "年:$年月:$月日:$日時:$時間n分:$分n秒:$秒";

//タイムスタンプへの通常の日付
echo mktime(0, 0, 0 , 9, 18, 2011) . "n";
echo mktime(0, 0, 0, 9, 25, 2011) . "n";


//これはフォーマット可能です
echo "time() 年を表示します、月、日、時、分、秒:" . date("Y-m-d H:i:s", time()) . "n";
//こうすると時、分、秒が一緒に表示されます
echo " time() は年と月のみを表示します 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);


?>


注意事項
<1> PHP の時刻には 2 種類あり、1 つはタイムスタンプ タイプ (1228348800) で、もう 1 つは通常のタイムスタンプ タイプです。 date format (2008-12-4)

< 2>. php5.1 以降のタイムスタンプは実際の時刻と異なります。 解決策は次のとおりです。
1. .1 以降のバージョン - 明らかに、これはお勧めできない方法です。 ! !

2. php.iniを変更します。 php.ini を開き、date.timezone を検索します。先頭のセミコロン = を削除し、最後に Asia/Shanghai を追加します。欠点は、プログラムが他の人のサーバーに配置されている場合、php.ini が実行できないことです。変更することはできません。

3. プログラムに時刻初期化ステートメントを追加します: "date_default_timezone_set("Asia/Shanghai"); "これはプログラマが任意に設定できます。これをお勧めします。
タイムゾーン識別子、中国本土で利用可能な値は次のとおりです: PRC、アジア/重慶、アジア/上海、アジア/ウルムチ (順に中国、重慶、上海、ウルムチ)、Etc/GMT-8、アジア/ハルビン
で利用可能香港と台湾: アジア/マカオ、アジア/香港、アジア/台北 (マカオ、香港、台北の順)
またシンガポール: アジア/シンガポール

このようにして、出力は北京時間になります


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。