回答:
strtotimeは日付文字列をタイムスタンプにします。反対の日付を実行したいとします。一般的なmysqlの日付形式はdate('Y-m-d H:i:s');
、他の文字が何を表しているかをマニュアルページで確認します。
使用したいタイムスタンプがある場合(どうやらそうです)、それはの2番目の引数ですdate()
。
echo date('m/d/Y', strtotime($current_date_variable);
$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
その他のタイムゾーン:
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
$year = date('Y', $time)
これは古い質問ですが、検索結果の上位にあります。
タイムスタンプを直接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を確認してください。
あなたはこれを試すことができます:
$mytimestamp = 1465298940;
echo gmdate("m-d-Y", $mytimestamp);
出力:
2016年6月7日
カスタムの日付と時刻の形式が必要でない限り、組み込みの日付と時刻の形式の定数の 1つを使用する方が簡単で、エラーが発生しにくく、読みやすくなります。
echo date(DATE_RFC822, 1368496604);
echo date("l M j, Y",$res1['timep']);
これは、UNIXタイムスタンプを日とともに読み取り可能な日付に変換するのに非常に適しています。例:2016年7月7日木曜日
$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