ある作業を通して出力されるログの日時が、”Fri Apr 03 07:25:46 UTC 2020″という文字列だったので、それを”2020-04-03 16:25:46″と直して、MySQLのTIMESTAMP形式のデータに格納する方法です。
ログはCSV形式で出力されるので、下記の記事の方法でLaravelにimportしました。
LaravelでExcelファイルを読み込む方法のメモ|ゼロから始めるLaravel勉強会
まずは、下記の通り必要なものをuseしておく
use DateTime; use DateTimeZone; use Carbon\Carbon;
データ変換についてはこちら
//元のデータ $original_time = "Fri Apr 03 07:25:46 UTC 2020" $utc = strtotime($original_date); $time = new DateTime(); $time->setTimestamp($utc)->setTimezone(new DateTimeZone('Asia/Tokyo')); $time = Carbon::parse($time)->format('Y-m-d H:i:s');
これで、日本時間(JST)の形式でMySQLに保存することができました。
参考
【PHP】UTCタイムスタンプを強制的にJST(日本時刻)表示する方法 – Qiita
Laravelで日付関連の処理を行うCarbonを使ってみる | cly7796.net
php – date() expects parameter 2 to be integer, string given – Help Me – Stack Overflow
[PHP] 日時/日付/時間の差を計算する – Qiita