読者です 読者をやめる 読者になる 読者になる

PHP で日付を扱うカスタム関数

そんな訳でいくつか流用。手なりで作ってしまっているのでご指摘大歓迎です。

date 型の変数を日本の日付表示に変換(曜日付)

function japaneseDate($date)
{
    if (preg_match('/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})([0-9: ]*)$/', $date, $val) && $date != '1000-01-01' && $date != '9999-12-31') {
        $youbi = array('日', '月', '火', '水', '木', '金', '土');
        $days_show  = date('Y年m月d日', strtotime($date));
        $days_youbi = "(".$youbi[date('w', strtotime($date))].")";
        $days = $days_show.$days_youbi.$val[4];
    } else if (preg_match('/^([0-9]{4})-([0-9]{1,2})$/', $date, $val)) {
        $days = $val[1]."年".$val[2]."月";
    } else {
        $days = "";
    }
    return $days;
}

開始日と終了日から期間に変換

function periodDate($date_start = '0000-00-00', $date_end = '0000-00-00')
{
    if ($date_start == '0000-00-00' && $date_end == '0000-00-00') {
        return;
    } else {
        if ($date_start == $date_end) {
            $date = japaneseDate($date_start);
        } else if ($date_end == '9999-12-31') {
            $date = japaneseDate($date_start) . '〜';
        } else if ($date_start == '0000-00-00') {
            $date = '〜' . japaneseDate($date_end);
        } else {
             $date = japaneseDate($date_start) . '〜' . japaneseDate($date_end);    
        }
        return $date;
    }
}

開始時間と終了時間から期間に変換

function periodTime($time_start = '00:00:00', $time_end = '00:00:00')
{
    if ($time_start = '00:00:00' && $time_end = '00:00:00') {
        return;
    } else {
        if ($time_start == $time_end) {
            $time = date('H:i', strtotime($time_start));
        } else if ($time_end == '00:00:00') {
            $time = date('H:i', strtotime($time_start)) . '〜';
        } else if ($time_end == '00:00:00') {
            $time = '〜' . date('H:i', strtotime($time_end));
        } else {
            $time = date('H:i', strtotime($time_start)) . '〜' . date('H:i', strtotime($time_end));
        }
        return $time;
    }
}