[英]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.