php 24小时格式的日期转换为12小时的日期

时间:2021-09-06 15:45:09

今天下午做一个商城站,用到限时秒杀的功能。需要一个js选择时间的插件,从网上down了一个,插件是选择到秒的,24小时制。需要把

php 24小时格式的日期转换为12小时的日期

转换为12小时制的。本来使用的是 strtotime 函数,但是发现24小时制的字符串在使用这个函数转换为时间戳的时候会强制转换为12小时制的上午的格式,这样,只要用这个插件选择了超过十二点的时间,就会出现错误。所以,要做的就是把24小时的时间转换为12小时制的时间。

经测试,要时间格式,需要先创建一个 DateTime 时间对象。方法为

php 24小时格式的日期转换为12小时的日期

然后,使用

php 24小时格式的日期转换为12小时的日期

将日期对象转换为想要的格式,就OK了。这个函数直接转换字符串是不行的。这也是我刚开始一直转换失败的原因。

具体过程为:

php 24小时格式的日期转换为12小时的日期

其中,data数组的start_time参数为传递过来的时间格式的字符串。

 

tips:在解决时间戳问题的时候,原来转换时,还遇到了一个问题,就是误将date参数设置为 Y-m-d h:m:s

php 24小时格式的日期转换为12小时的日期

结果在上传之后,发现时间一直有错误。后来才发现,分钟误设置为了m,而m在date中表示的是月份。

但是在请教同事的时候,同事说,m参数在这种情况

php 24小时格式的日期转换为12小时的日期

也就是不显示年月,只显示时分秒的时候用m是可以代表分钟的。但是经过测试,并不是这样。在这种情况下,时间戳的转换依然会出现原先的错误。

所以得出结论,m只可以作为月的参数在这个函数中使用。

tips:strtotime函数可以将字符串格式的时间转换为时间戳。如果传入了下午的时间,需要将上午下午的信息放在最后。

php 24小时格式的日期转换为12小时的日期

即可。

至于DateTime对象有没有办法转换为时间戳的方法?有,感觉那个函数格式有点麻烦,就未尝试使用。