[解決済み] Unixのタイムスタンプが与えられたとき、その日の始まりと終わりを得るにはどうしたらいいですか?
2023-05-11 17:44:56
質問
私はこのようなUnixのタイムスタンプを持っています。
$timestamp=1330581600
そのタイムスタンプの日の始まりと終わりを取得するにはどうすればよいですか?
e.g.
$beginOfDay = Start of Timestamp's Day
$endOfDay = End of Timestamp's Day
これを試してみました。
$endOfDay = $timestamp + (60 * 60 * 23);
でも、タイムスタンプ自体が正確な一日の始まりではないので、うまくいかないと思うのですが。
どのように解決するのですか?
strtotimeは、時間/分/秒を素早く切り取るために使用することができます。
$beginOfDay = strtotime("today", $timestamp);
$endOfDay = strtotime("tomorrow", $beginOfDay) - 1;
DateTimeも使用できますが、長いタイムスタンプから取得するためにいくつかの余分な手順が必要です。
$dtNow = new DateTime();
// Set a non-default timezone if needed
$dtNow->setTimezone(new DateTimeZone('Pacific/Chatham'));
$dtNow->setTimestamp($timestamp);
$beginOfDay = clone $dtNow;
$beginOfDay->modify('today');
$endOfDay = clone $beginOfDay;
$endOfDay->modify('tomorrow');
// adjust from the start of next day to the end of the day,
// per original question
// Decremented the second as a long timestamp rather than the
// DateTime object, due to oddities around modifying
// into skipped hours of day-lights-saving.
$endOfDateTimestamp = $endOfDay->getTimestamp();
$endOfDay->setTimestamp($endOfDateTimestamp - 1);
var_dump(
array(
'time ' => $dtNow->format('Y-m-d H:i:s e'),
'start' => $beginOfDay->format('Y-m-d H:i:s e'),
'end ' => $endOfDay->format('Y-m-d H:i:s e'),
)
);
PHP7で時間延長が追加されたため、もし
$now <= $end
でチェックすると、1秒を逃す可能性があります。
使用方法
$now < $nextStart
を使用すると、PHP の時刻処理における秒の引き算と夏時間に関する奇妙な問題に加えて、このギャップを避けることができます。
関連
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] C#でunixのタイムスタンプを取得する方法
-
[解決済み] bashスクリプトでtimestamp変数を作成する
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PHPでタイムスタンプを時間前に変換する(例:1日前、2日前...)。
-
[解決済み】pythonでdatetimeをUnixタイムスタンプに変換して元に戻す
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] MySQLは日付文字列をUnixタイムスタンプに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMPPのphpMyAdminで「設定にあるcontroluserの接続に失敗しました。
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。