我可以通过爆炸字符串然后设置将每个数字月转换为文本月但在我做所有这些之前有更简单的方法来执行以下操作的方法来思考一个非常漫长的方法?
我有一个日期存储在这样的变量中:
$date = '21/05/16';
我需要使用变量中的日期,月份和年份将其转换为Unix时间戳,其中包含当前时间戳的小时,分钟和时间戳。秒。
我上面描述的方式最终会像这样使用strtotime:
$unixtimestamp = strtotime("21 May 2016");
但就像我说的那样,我必须通过' /'来爆炸$ date变量。然后将每个数字月份转换为文本月份(05 = 5月等),最后注入' 20'到了每年的前面。这似乎真的很长,有更好的方法吗?
最后,我不确定如何将当前的小时,分钟,秒添加到strtotime(),即使我必须按照上面描述的方式进行,所以任何指针都会很好请
非常感谢任何帮助。
答案 0 :(得分:2)
您可以使用DateTime对象:
$date = '21/05/16';
$dateObject = DateTime::createFromFormat('d/m/Y', $date);
$timestamp = $date->getTimestamp();
你完成了:)
编辑:为了更进一步,你可以操纵你的约会并增加几个小时左右:
$dateObject->add(new DateInterval('P4H3M2S'));
它增加了4小时3分2秒的日期。请注意,它不会返回新日期,它会修改您正在操作的日期对象。