MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PHPでSQLデータベースのタイムスタンプを文字列に変換する方法


SQLデータベースから取得したタイムスタンプを日付文字列に変換するには、PHPのDateTimeクラスとsetTimestamp()メソッドを利用します。ここでは、ミリ秒単位のタイムスタンプを「年-月-日 時:分:秒」形式の文字列に変換する具体的な手順を、サンプルコード付きで解説します。

変換前の入力(タイムスタンプ)

今回の例では、次のようなミリ秒単位のタイムスタンプが入力であると仮定します。

$SQLTimestamp = 1600320600000;

期待される出力(日付文字列)

最終的に取得したい出力は、以下のような読みやすい日付文字列です。

2020-09-17 05:30:00

手順1:タイムスタンプを秒単位に変換する

setTimestamp()メソッドは秒単位の値を受け取る仕様のため、まずはミリ秒単位のタイムスタンプを1000で割り、小数点以下を四捨五入して秒に変換します。

$seconds = round($SQLTimestamp/1000, 0);

完全なコード例

一連の処理をまとめたサンプルコードは以下の通りです。

<!DOCTYPE html>
<html>
<body>
<?php
    $SQLTimestamp = 1600320600000;
    $seconds = round($SQLTimestamp/1000, 0);
    $PHPDateObject = new DateTime();
    $PHPDateObject->setTimestamp($seconds);
    echo $PHPDateObject->format('Y-m-d H:i:s');
?>
</body>
</html>

実行結果

上記のコードを実行すると、タイムスタンプは次のように日付文字列へ変換されます。

2020-09-17 05:30:00

このように、round()でミリ秒を秒に変換し、DateTime::setTimestamp()で日時オブジェクトを生成、さらにformat()で任意の書式を指定することで、タイムスタンプを簡単に人間が読みやすい日付文字列へ変換できます。タイムゾーンを扱いたい場合は、new DateTime('now', new DateTimeZone('Asia/Tokyo'))のようにタイムゾーンを明示的に指定することも可能です。

  1. ターミナル(コマンドプロンプト)からMySQLデータベースにSQLファイルを実行する方法

    MySQLデータベースでSQLファイルを実行したい場合、コマンドライン(ターミナルやコマンドプロンプト)から簡単に実行できます。この記事では、具体的な手順をスクリーンショット付きの手順解説に沿って紹介します。 SQLファイルを実行するための基本構文 データベースにSQLファイルをインポート・実行するには、以下の構文を使用します。 mysql -u ユーザー名 -p データベース名 < ファイル名.sql 各オプションの意味は以下のとおりです。 -u:MySQLに接続するユーザー名を指定します -p:パスワード入力を求めるプロンプトを表示します <:指定したSQLファイルの中身を

  2. MS Access から SQL Server へデータを移行する方法【初心者向け手順解説】

    データベースのサイズが大きくなりすぎてAccessでは管理しきれなくなったため、筆者は最近AccessデータベースからSQL Server 2014へデータを移行しました。作業自体はそれほど難しくありませんが、同じことで悩む方のために、ステップごとの詳しい手順を記事としてまとめておきます。 事前準備:SQL Serverのインストール まず最初に、お使いのパソコンにSQL ServerまたはSQL Server Expressがインストールされていることを確認してください。個人用PCにSQL Server Expressをダウンロードする場合は、必ずAdvanced Services(高度なサ