簡體   English   中英

如何在 PHP 中獲取今天的時間戳

[英]How can I get today's timestamp in PHP

我試過了

$dtToday = DateTime::createFromFormat('Y-m-d', date('Y-m-d'));

但是當我輸出它時

die($dtToday->format('d M Y g:i:s a'));

我仍然得到時間,例如“2011 年 1 月 22 日下午 4:53:59”。 這是為什么?

更新

啊……很多人誤會我了,我的不好,忘記指出要點了。 我只用日期部分創建了日期,我不想要時間。 所以我希望像

22 Jan 2011 12:00:00 am

您可以調用->setTime(0, 0)將時間部分歸零:

$date = DateTime::createFromFormat('Y-m-d', '2011-01-22')->setTime(0, 0);
echo $date->format('d M Y g:i:s a');
// 22 Jan 2011 12:00:00 am

請參閱DateTime::createFromFormat的文檔:

如果格式不包含字符! 那么在格式中未指定的部分生成時間將被設置為當前系統時間。

如果您執行以下函數調用,您將得到您期望的結果:

$dtToday = DateTime::createFromFormat('!Y-m-d', date('Y-m-d'));

今天的開始時間戳

$todayStartTS = strtotime(date('Y-m-d', time()) . ' 00:00:00');

您可以通過將當前的 unix 時間戳作為第二個參數傳遞給 date 函數來做到這一點

echo date("Y-m-d H:i:s",time());

從您的代碼中刪除這部分g:i:sa

現在,如果您想要根據本地格式設置好的日期,我建議您使用strftime()函數。

您將收到“2011 年 1 月 22 日下午 4:53:59”,因為這些是您格式化日期的規則:
d(天):22
M (月) : 一月
Y (年) : 2011
g(12 小時制):4
我(分鍾):53
s(秒):59
a(上午/下午):下午
更具體地說明您希望時間戳具有的格式。 我建議你在php 日期文檔中找到一個高峰。

是使用UTC還是什么?

我有一個 PHP 版本,每當我在沒有首先使用date_default_timezone_set情況下執行與date相關的操作時, date_default_timezone_set會給我一個錯誤。 也許這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM