加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP DateTime对象

发布时间:2020-12-13 21:50:03 所属栏目:PHP教程 来源:网络整理
导读:为什么在第一个例子中我得到分钟和秒00:00,在第二个例子中,当没有指定小时时,我得到了实际时间? 如果在创建对象的日期没有定义值,我想要始终为0. echo DateTime::createFromFormat('j.n.Y H',"3.4.2012 22")-format('Y-m-d H:i:s'); 输出:2012-04-03 22:00
为什么在第一个例子中我得到分钟和秒00:00,在第二个例子中,当没有指定小时时,我得到了实际时间?
如果在创建对象的日期没有定义值,我想要始终为0.

echo DateTime::createFromFormat('j.n.Y H',"3.4.2012 22")->format('Y-m-d H:i:s');

输出:2012-04-03 22:00:00

echo DateTime::createFromFormat('j.n.Y',"3.4.2012")->format('Y-m-d H:i:s');

输出:2012-04-03 23:05:45

预计输出:2012-04-03 00:00:00

解决方法

这将给你希望的格式:

echo DateTime::createFromFormat('!j.n.Y',"3.4.2012")->format('Y-m-d H:i:s');


Output: 2012-04-03 00:00:00
Excpected output: 2012-04-03 00:00:00

参考:http://php.net/manual/en/datetime.createfromformat.php

! Resets all fields (year,month,day,hour,minute,second,fraction
and timzone information) to the Unix Epoch Without !,all fields will
be set to the current date and time.

换句话说,如果没有感叹号!,如果未指定H(小时),i(分钟)和s(秒)中的任何一个,则使用运行PHP脚本的当前OS系统时间.

如果给出了His的任何元素,则不使用系统时间,在effet中,0将填充所有未指定的时间元素.例如:

echo DateTime::createFromFormat('j.n.Y H',"3.4.2012 22")->format('Y-m-d H:i:s');
//=> 2012-04-03 22:00:00

echo DateTime::createFromFormat('j.n.Y i',"3.4.2012 22)->format('Y-m-d H:i:s');
//=> 2012-04-03 00:22:00

echo DateTime::createFromFormat('j.n.Y s',"3.4.2012 22")->format('Y-m-d H:i:s');
//=> 2012-04-03 00:00:22

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读