我可以想到一个很长的方法来执行以下操作:分解字符串,然后设置将每个数字月份转换为文本月份的变量,但是在我完成所有这些操作之前,还有一种更简单的方法来执行以下操作吗?
我将日期存储在这样的变量中:
$date = '21/05/16';
我需要使用小时,分钟和秒的当前时间戳,使用变量的日期,月份和年份将其转换为Unix时间戳。
我上面描述的方式最终将使用strtotime,如下所示:
$unixtimestamp = strtotime("21 May 2016");
但是就像我说的那样,我必须用'/'来分解$ date变量,然后将每个数字月份转换为文本月份(05 =五月等),最后将'20'插入到每年的开头。这似乎真的很长,有更好的方法吗?
最后,我不确定如何将当前的小时,分钟,秒数添加到strtotime()中,即使我确实必须按照上面描述的方式进行操作,所以任何有关此的指针都将非常有用。
任何帮助,不胜感激。
您可以使用DateTime对象:
$date = '21/05/16';
$dateObject = DateTime::createFromFormat('d/m/Y', $date);
$timestamp = $date->getTimestamp();
你完成了:)
编辑:要走得更远,您可以操纵日期并增加小时数:
$dateObject->add(new DateInterval('P4H3M2S'));
它增加了4小时3分2秒的日期。请注意,它不会返回新日期,而是会修改您要处理的日期对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句