我有两个输入,一个是yyyy/mm/dd格式的日期,另一个是12:15 AM的时间。现在我需要在数据库中保存一个时间戳。我得到两个输入可以说:PHP从单独的日期和时间获取时间戳
$my_date = '2013/12/22';
$my_time = '12:50 PM';
我如何获得一个时间戳保存到分贝?
谢谢
我有两个输入,一个是yyyy/mm/dd格式的日期,另一个是12:15 AM的时间。现在我需要在数据库中保存一个时间戳。我得到两个输入可以说:PHP从单独的日期和时间获取时间戳
$my_date = '2013/12/22';
$my_time = '12:50 PM';
我如何获得一个时间戳保存到分贝?
谢谢
试试这个...
$my_date = '2013/12/22';
$my_time = '12:50 PM';
$full_date = $my_date . ' ' . $my_time;
$timestamp = strtotime($full_date);
您可以使用strtotime()将它转换为UNIX时间戳。
例如为:
$my_date = strtotime('2013/12/22');
$my_time = strtotime('12:50 PM');
充分的日期+时间时间戳
$timestamp = strtotime('2013/12/22 12:50 PM');
使用DateTime:createFromFormat()
个
<?php
$my_date = '2013/12/22';
$my_time = '12:50 PM';
$d = sprintf('%s %s', $my_date, $my_time);
$dt = DateTime::createFromFormat('Y/m/d h:i A', $d);
$ts = $dt->getTimestamp();
var_dump($ts);
产量:
int 1387716600
希望这有助于:)
编辑
我已经upvoted这个答案'因为我相信这是迄今为止最好和最新的答案,但似乎在我之后的人也已经低估了这一点。出于好奇想知道这是什么原因?这个答案有什么问题吗? – Mahdi
谢谢@Mahdi。我也希望对downvote发表评论。有人也低估了接受的答案。显然这些答案是不正确也不准确的。在我看来,如果不提供某种理由/反馈,就会冷静下来。 –
关于答案本身,我使用的日期和时间很多,我个人更喜欢使用'DateTime'类的家族('DateTimeZone','DateInterval','DatePeriod'等),因为它提供了一些很好的功能和灵活性。也就是说,'strtotime'函数也没什么问题 - 它只是实用程序和所需功能的问题。在这种情况下,我特别使用了'createFromFormat',因为格式不同(Y/m/d,与ISO8601类似,除了使用斜杠)并明确定义输入格式以尽量减少可能的错误。 –
但我如何在一个时间戳中获取整个日期? – Alejandro
@AlejandroCasas像这样'strtotime('2013/12/22 12:50 PM');' – Mahdi
@mahdi为什么你接受与我的相同的另一个答案,并在几分钟后发布并接受? – edwardmp