我有一些约会,比如:
20 November 06:10
12 November 08:12
10 October 13:23
过去6个月都有,现在我想要strtotime()
它们,但它们都不完整(缺少年份),如何制作一些流程以便我可以strtotime()
它们?
您应该使用DateTime类及其createFromFormat和getTimeStamp方法,而不是 strtotime。
试试这个:
$dates = array("10 October 13:23", "12 November 08:12", "10 October 13:23");
foreach($dates as $d){
$exploded = explode(" ", $d);
$newDate = array_slice($exploded, 0,2,true)+array(2=>"2012")+array(3 => $exploded[2]);
//print_r($newDate);
$time = strtotime(implode($newDate));
echo $time."<br/>";
}
我得到的输出是:
1349868180
1352704320
1349868180
逻辑是:
你缺少年份,所以我将日期分解成一个数组来分割它们,插入年份(+array(2=>"2012")
部分)并用 implode 再次粘合它们,然后运行 strtotime。
这仅适用于今年,因此您可以使用此逻辑将年份添加到所有日期,或者将来绝对无法过滤来自不同年份的日期。
while($row = mysqli_fetch_assoc($result))
中。$d
$row['date']
print_r(date_parse_from_format("d F H:i", '20 November 06:10'));
给你:
Array
(
[year] =>
[month] => 11
[day] => 20
[hour] => 6
[minute] => 10
[second] => 0
[fraction] =>
[warning_count] => 0
[warnings] => Array
(
)
[error_count] => 0
[errors] => Array
(
)
[is_localtime] =>
)