ホームページ >バックエンド開発 >PHPチュートリアル >PHP は strtotime を使用して先月、来月、今月の日付コード例を取得します。

PHP は strtotime を使用して先月、来月、今月の日付コード例を取得します。

怪我咯
怪我咯オリジナル
2017-07-10 09:50:313127ブラウズ

PHPにはstrtotimeという関数があります。 strtotime 実装関数: 特定の日付の timestamp を取得する、または特定の時刻のタイムスタンプを取得します。 strtotime は、英語のテキストの日付と時刻の記述を Unix タイムスタンプに解析します

今日プログラムを書いているとき、月の日数を取得するために昔書いた、古典的な switch 関数を突然発見しました。 バージョンですが、前月の日数を取得したときに月を-1しただけで、その時はあまりにも眠かったため、最初に見たかったものをもう一度見ると不気味な気分になりました。もう一度対処する必要がありますが、何か超便利な方法があるはずだと思い、いくつかのマイナーな変更を加えた次のバージョンを見つけました。

今月の日付を取得します:

 function getMonth($date){
   $firstday = date("Y-m-01",strtotime($date));
   $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day"));
   return array($firstday,$lastday);
 }

$firstday が月の最初の日です。$date が 2014-2 の場合、$firstday は 2014-02-01 になり、$firstday に 1 か月を加算します。 2014-03-01 から 1 日引くと 2014-02-28 になります。 date() と strtotime() を使用すると便利です。

前月の日付を取得する:

 function getlastMonthDays($date){
   $timestamp=strtotime($date);
   $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));
   $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
   return array($firstday,$lastday);
 }

前月の日付を取得するには、まずタイムスタンプを取得してから、月に -1 を追加する必要があります。超スマートな date() は、2014 などを変換します。 -2013 年 12 月 1 日まで 0 勝 1 敗、とてもクールです。

来月の日付の取得:

 function getNextMonthDays($date){
   $timestamp=strtotime($date);
   $arr=getdate($timestamp);
   if($arr['mon'] == 12){
     $year=$arr['year'] +1;
     $month=$arr['mon'] -11;
     $firstday=$year.'-0'.$month.'-01';
     $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
   }else{
     $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01'));
     $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
   }
   return array($firstday,$lastday);
 }

来月の日付のコードは少し長く見えます。date() は 2014-13-01 のようなものを変換できないため、直接 1970 年に戻るため、対処する必要があります前は12です。12月を除く月号の場合は、月+1でOKです。

全体的にとても便利です、日付機能が強力すぎます。

最後にstrtotimeの使い方を簡単に紹介します

指定した日付のUNIXタイムスタンプを取得します

strtotime("2009-1-22") 例は以下の通りです:
echo strtotime("2009-1 -22")
結果:1232553600
説明:2009年1月22日0:00:0のタイムスタンプを返します

英語テキストの日付と時刻を取得します

例は次のとおりです。比較、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 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 ) 先週のこの時刻に出力 timestamp 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-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("next Wednesday"))
Result: 2009-01-29 00:00:00

(6) 指定された日のタイムスタンプを出力します。 Week 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

上記の例からわかるように、strtotime は日付と時刻の記述を解析できます。任意の英語テキストを Unix タイムスタンプに変換します。これを

mktime() と組み合わせます。または、date() で日付と時刻をフォーマットし、必要な日付と時刻を取得するために指定されたタイムスタンプを取得します。

以上がPHP は strtotime を使用して先月、来月、今月の日付コード例を取得します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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