PHP_PHP チュートリアルの日付と時刻の操作の概要

WBOY
リリース: 2016-07-13 17:34:51
オリジナル
833 人が閲覧しました

//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 時を返します。
*/

#PHP5 は最初にデフォルト領域を設定する必要があります。

date_default_timezone_set(ETC/GMT-8);
$nowdate=2010-02-23;
$lassdate = 2010-02-22;

echo strftime() 関数は .strftime(%Y-%m-%d %H:%M:%S,time()) を出力します。
;

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 
;
/*配列(
[秒] => 42
[分] => 16
[時間] => 13
[月曜日] => 23
[平日] => 2
[月] => 2
[年] => 2010
[yday] => 53
【平日】 => 火曜日
[月] => 2月
[0] =>1266902202
)
*/

//echo date("Y-m-d H:i:s",-8000);

//setlocale(LC_ALL,zh_CN.gb2312); //setlocale 関数は以下には影響しません。

#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);

echo date("Y-m-d ",$time_int).
//MYSQL の date() 関数と同じ関数は date_format(1996-02-05 11:07:45,%Y-%m) -%d) または for_format()


/*時間操作:
※方法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=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

"; #方法 2: 現在の日付を直接インターセプトして 1 を引く年を使用しますが、厳密ではなく、閏年は考慮されません。

#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()の呼び出し
*/
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508431.html技術記事 ?php //GB2312 のエンコード header(Cache-Control: no-store, no-cache, must-revalidate); /*重要なポイントstrtotime() 関数 1、strf... を理解します
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート