繁体   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