【PHP】日時・日付をタイムスタンプに変更する方法

更新日:

ルナリス

ルナリス

日時や日付をタイムスタンプに変更する方法を解説するわ


お願いします!

ソルト

ソルト

タイムスタンプ→日時に変換したい場合はこちら

日時をタイムスタンプに変更する方法

「Y/m/d H:i:s」または「Y-m-d H:i:s」のフォーマットを用意してタイムスタンプを作成します。

//タイムゾーンを日本に設定( 必要であれば記述 )
//date_default_timezone_set ('Asia/Tokyo');

//日時の定義
$date = '2023/1/21 01:00:00';

//タイムスタンプに変換
$timestamp = strtotime($date);

echo $timestamp;

ルナリス

ルナリス

strtotime関数を使用することでタイムスタンプを作成できるわ


簡単じゃん!

ソルト

ソルト


ルナリス

ルナリス

ところがどっこい私達は日本語を使用してるから一手間必要よ

Y/m/d H:i:sフォーマットを用意する

このサイトを見ている方は日本人が多いと思います。
日本のフォーマットを使用している場合は英語フォーマットに変更する必要があります。
 

 
例:「2023年1月21日(土) 1時0分35秒」を「2023/1/21 1:0:35」に変換する。
 

 

//日時フォーマットを整える関数
function adjust_date_format( $date ){
    $date = mb_convert_kana($date, "n,a");
    $date = str_replace('年', '/', $date);
    $date = str_replace('(月)', '', $date);
    $date = str_replace('(火)', '', $date);
    $date = str_replace('(水)', '', $date);
    $date = str_replace('(木)', '', $date);
    $date = str_replace('(金)', '', $date);
    $date = str_replace('(土)', '', $date);
    $date = str_replace('(日)', '', $date);
    $date = str_replace('月', '/', $date);
    $date = str_replace('日', ' ', $date);
    $date = str_replace('時', ':', $date);
    $date = str_replace('分', ':', $date);
    $date = str_replace('秒', '', $date);
    $date = str_replace('  ', ' ', $date);
    return $date;
} 

//日時の定義
$date = '2023年1月21日(土) 1時0分35秒';
//フォーマットを整える
$date = adjust_date_format( $date );

echo $date;
//出力結果 2023/1/21 1:0:35

ルナリス

ルナリス

フォーマットを整える、「adjust_date_format」関数を作成したわ


ルナリス

ルナリス

大体のフォーマットに対応してると思うからコピペでOKよ

簡単な解説

・「mb_convert_kana($date, “n,a”)」で数字と記号を半角に変換
・日本語を削除、または記号に置換

まとめ

2つのプログラムをまとめた物が次になります。
(日本語の日時をタイムスタンプに変換するプログラム)


//日時フォーマットを整える関数
function adjust_date_format( $date ){
    $date = mb_convert_kana($date, "n,a");
    $date = str_replace('年', '/', $date);
    $date = str_replace('(月)', '', $date);
    $date = str_replace('(火)', '', $date);
    $date = str_replace('(水)', '', $date);
    $date = str_replace('(木)', '', $date);
    $date = str_replace('(金)', '', $date);
    $date = str_replace('(土)', '', $date);
    $date = str_replace('(日)', '', $date);
    $date = str_replace('月', '/', $date);
    $date = str_replace('日', ' ', $date);
    $date = str_replace('時', ':', $date);
    $date = str_replace('分', ':', $date);
    $date = str_replace('秒', '', $date);
    $date = str_replace('  ', ' ', $date);
    return $date;
}

//日時の定義
$date = '2023年1月21日(土) 1時0分35秒';
//フォーマットを整える
$date = adjust_date_format( $date );

//タイムスタンプに変換
$timestamp = strtotime($date);
echo $timestamp;

合わせて読みたい記事


コメント一覧

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です