PHP|data
日付と時刻は、SQLクエリの実行中またはWebサイトなど、PHPで最も頻繁に使用される操作の一部です。
PHPでは定義済み関数を提供します。
日付と時刻に関するPHPの事前定義された関数のいくつかを以下で説明します。
1.php date()関数
PHPのdate()関数は、タイムスタンプをより読みやすい日付と時刻の形式に変換します。
date()関数とはなにか
コンピューターは、UNIXタイムスタンプと呼ばれる形式で日付と時刻を格納します。これは、Unixエポックの開始(1970年1月1日のグリニッジ標準時の真夜中、つまり1970年1月1日00:00:00 GMT)からの秒数として時間を測定します。
これは人間が読むには実用的でない形式であるため、PHPはタイムスタンプを人間が読みやすく理解しやすい形式に変換します。
$today = date("Y/m/d");
年/月/日 を出力
現在日時
<? php
echo date("Y/m/d h:i:s A");
?>
出力:
2.PHPのtime()関数
time()関数は、現在の時刻をUnixタイムスタンプ(UNIXエポックの開始からの秒数:1970年1月1日00:00:00 GMT)として取得するために使用されます。
<? php
$timestamp = time(); 
echo($timestamp); 
?>
 出力
3.PHP mktime()関数
mktime()関数は、特定の日時のタイムスタンプを作成するために使用されます。
日時が指定されていない場合、現在の日時のタイムスタンプが返されます。
<?php
echo mktime(23, 21, 50, 11, 25, 2020); 
?>
 出力
4.便利関数メモ
 
1. 1ヶ月マイナス
<?php
$date1 = "2020-05-16";
function wareki_minus($date1){
  $wdate = strtotime($date1 . '-01'); // 開始年月をタイムスタンプに
  $wdate = strtotime('-1 month', $wdate);
  $str = date('Y-m-d', $wdate);
  return $str;
}
?>
   
2. 日付を年月日にする
<?php
    function date_wareki($str){
        list($year, $month, $day, $time) = preg_split(("/[\s,-]/"), $str );
        $data1wareki = ''.$year.'年'.$month.'月'. $day .'日';
        return $data1wareki;
    }
?>
3.西暦を和暦に(令和対応)
<?php
// 西暦 => 和暦
$str = "2020-05-16";
    function wareki($str) {
        list($year, $month, $day) = preg_split(("/[\s,-]/"), $str );
        $data1wareki = ''.$year.'年'.$month.'月'. $day .'日';
        $eras = [
            ['year' => 2018, 'name' => '令和'],
            ['year' => 1988, 'name' => '平成'],
            ['year' => 1925, 'name' => '昭和'],
            ['year' => 1911, 'name' => '大正'],
            ['year' => 1867, 'name' => '明治']
        ];
        foreach($eras as $era) {
            $base_year = $era['year'];
            $era_name = $era['name'];
            if($year > $base_year) {
                $era_year = $year - $base_year;
                if($era_year === 1) {
                    return $era_name .'元年' . $month . '月';
                }
                return $era_name . $era_year .'年' . $month . '月';
            }
        }
        return null;
    }
echo wareki($str);
?>
結果
4.月の始まりの日(月初日)を知る
 
<?php
$str = "2020-05-16";
function month_start($str){
  return date('Y-m-d', strtotime('first day of ' . $str));
}
echo month_start($date1);
?>
結果:
5.月の終わりの日(月末)を知る
 
<?php
$str = "2020-05-16";
    function month_last($str){
      return date('Y-m-d', strtotime('last day of ' . $str));
    }
echo month_last($date1);
?>
結果:
6.その日の曜日を取得(知る)
 
<?php
$str = "2020-05-16";
    function getYobi($str){
        list($year, $month, $day) = preg_split(("/[\s,-]/"), $str );
        $datetime = new DateTime();
        $datetime->setDate($year, $month, $day);
        $week = array("日", "月", "火", "水", "木", "金", "土");
        $w = (int)$datetime->format('w');
        return $week[$w];        
    }
echo getYobi($str);
?>
結果
よく使う日付関数の紹介でした。