//GB2312のエンコード
header("キャッシュ制御: ストアなし、キャッシュなし、再検証が必要");
header("キャッシュ制御: post-check=0, pre-check=0", false);
/*strtotime() 関数の理解に重点を置いてください
1. strftime は time() よりも使いやすく、一般的に使用される「2010-02-03」をタイムスタンプに直接変換できます。
2. date() は 1970 年より前の時間を表示できます。パラメーター 2 として負の数値を使用する代わりに
3. 日付計算はタイムスタンプを使用して転送できます。 2 つの日付の差の日数を計算するには、差のタイムスタンプを取得し、それを「24 時間 * 60 分 * 60」秒で割ることができますが、strtotime() を使用する方がより簡潔です。
4. PEAR を使用してカレンダーを作成する方法を学びます。ここでは省略します。
知識ポイント: インターネットには、1970 年より前の時刻を計算する date(Y-m-d,-800) がありますが、WINDOW システムは負の値をサポートしていないため、常に 1970-1-1 の午前 0 時を返します。
*/
date_default_timezone_set(ETC/GMT-8);
$nowdate=2010-02-23;
$lassdate = 2010-02-22;
echo date() 関数は .date(Y-m-d H:i:s,time()) を出力します。
;
//日付の確認: boolean checkdate(int month,int day,int year)
$d=2010-2-31;
echo $d.Yes.(checkdate(2,31,2010)? 有効な日付!: 無効な日付!).
;
//月の日数を決定します
echo 今月は .date(t,time()).days
//28 日あります
;
// 特定の月の日数を決定します
$d=2008-02-01; //閏年、または $d=2008-02; 日を入力する必要はありません。
$d=strtotime($d);
echo 2008 年 2 月には .date(t,$d).days
//29 日があります
;
$d=getdate();
;<p> print_r($d);<br> echo;
#strftime、mktime 関数をテストします。
echo strftime(今日は: %Y-%m-%d %H:%M:%S).
;
echo strtotime(now).
// time() と同等ですが、strtotime の使用範囲はより柔軟です。以下を参照してください。
昨日の時刻を復元するエコー テスト: .date(Y-m-d,strtotime($lassdate)).
//日付文字列をタイムスタンプに変換し、date を使用して元の形式に戻すことができます。
$x=strtotime($lassdate);
$y=mktime(0,0,0,2,22,2010);
echo strtotime() によって取得された昨日のタイムスタンプは: .$x.、mktime() によって取得された昨日のタイムスタンプは: .$y.(($x==$y)?、2 つは等しい:、2 つは同じではない).
; //等しい。
#1970 年より前の日付を表示します
$time_int=strtotime(1929-2-10);
/*時間操作:
※方法3をご利用ください。他の方法は参考用です。 *
#1. 今日は一昨日の時刻、つまりマイナス 2 日の時刻を取得します。
$predate=2;
$pretime=$predate*24*60*60; // 2 日のタイムスタンプ。
echo date(一昨日は: Y-m-d, time()-$pretime).
//一昨日は: 2010-02-21
#2、
2 つの日付の間の日数の差。
$olddate = 2010-02-11; //mktime 関数を使用する場合は、explode を使用して日付を逆アセンブルする必要があります。
$oldtime = strtotime($olddate);
$passtime = time()-$oldtime; //経過タイムスタンプ。
echo あなたはオンラインになっています。floor($passtime/(24*60*60)) 数日間。
;
#3. 去年の今頃。閏年を使用する場合は、通常の年では 365 日、閏年では 366 日を考慮する必要があります。
#方法 1: タイムスタンプからその年の日数を引いた値を取得します。
$yDate_Y=date(Y,time())-1; //年-1、つまり去年
$yDateYMD="$yDate_Y-01-01";
$yYMD=strtotime($yDateYMD); //昨年 1 月 1 日のタイムスタンプ。
$d=date(L,$yYMD)?366:365; //閏年ですか
$y年時刻=$d*24*60*60;
$yyear=date(Y-m-d,time()-$yyearTime);
echo "昨年の今日: $y年
//2009-02-23
#60年前の今日を計算してみます。閏年が経過しても無視してください。
$yDate_Y=$yDate_Y-59;
$md=explode(-,date(Y-m-d));
$yYMD="$yDate_Y-{$md[1]}-{$md[2]}";
echo "60 年前の今日: $yYMD
" //1950-02-23
#方法 3: strtotime() と GNU 日付構文を使用する----------推奨!
// 3 日後 // 現在の時刻は 2010 年 2 月 23 日です
$d=strtotime(3 日);
echo 3 日後.date(Y-m-d,$d)."
";
//3日前:
$d=strtotime(-3 日);
echo 3 日前.date(Y-m-d,$d)."
" //2010-02-20
//1 か月前:
$d=strtotime(-1 か月);
echo 1 か月前.date(Y-m-d,$d)."
" //2010-01-23
//2ヶ月後:
$d=strtotime(2 か月);
echo 2 か月後.date(Y-m-d,$d)."
" //2010-04-23
//1 年前:
$d=strtotime(-1 年);
echo 1 年前.date(Y-m-d,$d)."
" //2009-02-23
//2 時間前:
$d=strtotime(-2 時間);
echo 現在: .date(Y-m-d H:i:s,time())., 2 時間前.date(Y-m-d H:i:s,$d)."
" //現在: 2010 -02-23 13:38:49、2 時間前 2010-02-23 11:38:49
#DateTime コンストラクター: object DateTime([string $time [,dateTimeZone $timezone])
$date = 新しい日時(2010-02-23 12:26:36);
echo $date->format(Y-m-d H:i:s)."
"; //date() 関数と同じ。 2010-02-23 12:26:36
//リセット時間:
//1. 日付のリセット: ブール値 setDate(int 年、int 月、int 日)
//2. 時刻のリセット: ブール値 setDate(int 時間,int 分[,int 秒])
$date->setDate(2010,2,28);
echo $date->format(Y-m-d H:i:s)."
" //2010-02-28 12:26:36
//日付の計算、上記の strtotime() と同等
$date->modify("+7 時間");
echo $date->format(Y-m-d H:i:s)."
" //2010-02-28 19:26:36
$date->modify("3 日");
echo $date->format(Y-m-d H:i:s)."
" //2010-03-03 19:26:36 //上記の変更された 28 日から開始します
/*PHP5 は WIN のmoney_format 関数をサポートしていませんか?
setlocale(LC_MONETARY,zh_CN);
echomoney_format("%i",786.56);//?致命的なエラー:未定義の関数money_format()の呼び出し
*/
?>