web-dev-qa-db-ja.com

今日の真夜中のタイムスタンプを取得しますか?

今日の真夜中のPHPでタイムスタンプを取得するにはどうすればよいですか?月曜日の午後5時で、月曜日(今日)の深夜(午前12時)のタイムスタンプが既に発生しているとします。

ありがとうございました

107
user1701398
$timestamp = strtotime('today midnight');

PHPが提供するものを見てみたいと思うかもしれません: http://php.net/datetime

212
hakre

新しいPHP DateTimeオブジェクトを使用する必要があると思います。strtotime()が持つ32ビットの制限を超えて日付を実行しても問題はありません。以下は、今日の日付を真夜中に取得する方法の例です。

$today = new DateTime();
$today->setTime(0,0);

または、PHP 5.4以降を使用している場合は、次の方法で実行できます。

$today = (new DateTime())->setTime(0,0);

次に、echo $today->format('Y-m-d');を使用して、オブジェクトを出力する形式を取得できます。

PHP DateTimeオブジェクト

64
Joe Meyer

今日は真夜中。簡単です。

$stamp = mktime(0, 0, 0);
16
bearcat

太陽が足の真下を通過した最新の天体イベントの時間を計算し、正午をマークする現地の慣習に合わせて調整し、潜在的に調整して、仕事から家に戻った後に十分な昼光が残るようにしますその他の政治的考慮事項。

恐ろしいですか?実際、これは一般的な問題ですが、完全な答えは場所に依存します。

$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();

「ここ」の潜在的な定義は https://secure.php.net/manual/en/timezones.php にリストされています

7
$today_at_midnight = strtotime(date("Ymd"));

あなたがあなたがしているものを与える必要があります。

説明

私がやったのは、PHPの日付関数を使用して、時刻を参照せずに今日の日付を取得し、それを「文字列から時刻」関数に渡して、日付と時刻をエポックタイムスタンプに変換することでした。時間が取得できない場合は、その日の最初の2秒が想定されます。

参照:日付関数: http://php.net/manual/en/function.date.php

文字列から時間へ: http://us2.php.net/manual/en/function.strtotime.php

4
SamHuckaby
$timestamp = strtotime('today midnight');

と同じです

$timestamp = strtotime('today');

サーバーでの作業が少し少なくなります。

1
Case

Carbonを使用している場合、次のことができます。この日付をフォーマットして、Expire HTTPヘッダーを設定することもできます。

Carbon::parse('tomorrow midnight')->format(Carbon::RFC7231_FORMAT)
0
nowox

よりオブジェクト的な方法で:

$today = new \DateTimeImmutable('today');

例:

 echo (new \DateTimeImmutable('today'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 00:00:00

そして:

echo (new \DateTimeImmutable())->format('Y-m-d H:i:s');
echo (new \DateTimeImmutable('now'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 14:00:35
0
Jan Galtowski

$midnight = strtotime('midnight');は有効です
strtotime('12am')またはstrtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]')を試すこともできます。デフォルトは今日なので、真夜中の前に今日の追加をスキップしました。

0
Victor Mbamara