PHP 2012-08-16T21:14:03.447 のこの日時はどのような形式ですか?
この形式は、特に一般的に使用される例ではありませんが、 ISO 8601 国際標準でカバーされています。
余談ですが、(標準では) 秒の端数の前にドットではなくコンマを付けることが推奨されています。
タイムスタンプに変換したり、その逆にするにはどうすればよいですか?
通常のように、strtotime()
またはDateTime
クラスで。
$subject = '2012-08-16T21:14:03.447';
echo date('r', strtotime($subject));
// or
$datetime = new DateTime($subject);
echo $datetime->format('r');
タイムスタンプ形式は 1345108443790 ですが、日時を取得するにはどうすればよいですか?
これはUnix 時間ですが、単位はミリ秒です。基本的な算術演算では、秒単位の Unix 時間が得られ、そこからフォーマットDateTime
を使用してオブジェクトを作成でき@1234567890
ます。
$subject = 1345108443790;
$unixtime = (int) ($subject / 1000);
echo date('r', $unixtime);
// or
$datetime = new DateTime("@$unixtime");
echo $datetime->format('r');
ミリ秒の精度が必要な場合は、 を使用できますDateTime::createFromFormat()
。
$subject = 1345108443790;
$unixtime = (int) ($subject / 1000);
$millis = $subject % 1000;
$datetime = DateTime::createFromFormat('U u', "$unixtime $millis");
echo $datetime->format('r u');