我怎样才能获得今天的PHP时间戳

时间:2011-01-22 08:54:22

标签: php datetime timestamp

我试过

$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

7 个答案:

答案 0 :(得分:15)

您可以致电->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

答案 1 :(得分:14)

请参阅DateTime::createFromFormat的文档:

  

如果格式不包含该字符!然后, format 中未指定的部分生成时间将设置为当前系统时间。

如果您执行以下函数调用,您将获得预期的结果:

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

答案 2 :(得分:6)

您可以将当前的unix时间戳作为第二个参数传递给日期函数

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

答案 3 :(得分:5)

今天的开始时间戳

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

答案 4 :(得分:1)

你得到的是“2011年1月22日下午4:53:59”,因为这些是你用日期格式化的规则:
d(日):22
M(月):1月 Y(年):2011年 g(12小时格式):4
我(分钟):53
s(秒):59
a(上午/下午):下午 你希望你的时间戳有更具体的格式。 我建议你在php date文档中找到一个高峰。

答案 5 :(得分:0)

是使用UTC还是什么?

我有一个PHP版本,在我执行date相关操作时,如果没有先使用date_default_timezone_set,则会出现错误。也许那会对你有帮助。

答案 6 :(得分:0)

从代码中删除此部分g:i:s a

现在,如果你想要一个根据你当地格式化的好日期,我建议你使用strftime()功能。