タイムスタンプを読みやすい日付/時刻PHPに変換する


227

セッションにタイムスタンプが保存されています(1299446702)。

それをPHPで読み取り可能な日付/時刻に変換するにはどうすればよいですか?srttotimeなどを試しても無駄になりました。

回答:



84

strtotimeは日付文字列をタイムスタンプにします。反対の日付を実行したいとします。一般的なmysqlの日付形式はdate('Y-m-d H:i:s'); 、他の文字が何を表しているかをマニュアルページで確認します。

使用したいタイムスタンプがある場合(どうやらそうです)、それはの2番目の引数ですdate()


4
次のようにそれは私が私の現在の日付に合格したことは良いノートを次のようになりますecho date('m/d/Y', strtotime($current_date_variable);
cwiggo

私はUnixタイムスタンプに日時を変換しますが、私のデータベースには、日時は私がこれを試してみてくださいウィルが、私はまだそれには、特定のコマンドが存在しない、それは奇妙なことを見つけることはまだですbecouseその日時の標準化にタイムスタンプを変換するコマンドはありません
マルクロエルセ

64

ロケットの答えにH:i:sを追加して、日付と一緒に時間を取得しました。

echo date('m/d/Y H:i:s', 1299446702);

出力:2011/06/06 16:25:02


49
$timestamp = 1465298940;
$datetimeFormat = 'Y-m-d H:i:s';

$date = new \DateTime();
// If you must have use time zones
// $date = new \DateTime('now', new \DateTimeZone('Europe/Helsinki'));
$date->setTimestamp($timestamp);
echo $date->format($datetimeFormat);

結果:2016-06-07 14:29:00

その他のタイムゾーン:


23

PHP date()を使用している場合は、このコードを使用して日付、時刻、秒などを取得できます。

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds

12
うるう年と秒はどうですか...?
Petteri Hietavirta

$year = date('Y', $time)
ルーベンカズモフ2016年

16

これは古い質問ですが、検索結果の上位にあります。

タイムスタンプを直接DateTimeオブジェクトに変換したい場合は、簡単なワンライナーがあります。

$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);

@sromeroコメントに続いて、UNIXタイムスタンプが渡されるとタイムゾーンパラメータ(DateTime :: createFromFormat()の3番目のパラメータ)が無視されるため、以下のコードは不要です。

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored

詳細とオプションについては、PHPのマニュアルでDateTime :: createFromFormatを確認してください。


1
コードの最後の行に関するコメントを入力します。リンクしているマニュアルページによると、「注:時間パラメータにUNIXタイムスタンプ(例:946684800)が含まれるか、時間帯(例:2010 -01-28T15:00:00 + 02:00)。」
sromero

@sromeroあなたは正しい。この場合、timezoneパラメータは無視されます。
Pascal




6

これを試してください:

echo date('m/d/Y H:i:s', 1541843467);

1
こんにちは!この回答はすでに提案されているようです。一番上の答えを見てください。
帽子

4

echo date("l M j, Y",$res1['timep']);
これは、UNIXタイムスタンプを日とともに読み取り可能な日付に変換するのに非常に適しています。例:2016年7月7日木曜日


1
同様の回答がすでに投稿されていますが、回答のプラスの情報は何ですか?
Steffen Harbich


4
$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00

上記の例では、「r」と「Ymd H:i:s」はPHPの日付形式で、他の例は次のとおりです。

フォーマット出力

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.