我有一个包含日期的数组,要将其转换为日期并对其进行排序。以下是从数组中提取的字符串:Samedi 14 janvier 2017 - 13h45
我已经开始删除小时:
$only_date = strstr(strtolower($date),' - ', true);
结果是:Samedi 14 janvier 2017
然后我试着转换它:
strftime(" %A %B %Y",strtotime($only_date));
但是它不工作,我得到01-01-1970。
我该如何处理?
谢谢。编辑:
我删除了工作日:
$days = array('lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche');
$only_date = str_replace($days,"",$date_string);
echo strftime(" %A %B %Y",strtotime($only_date));
得到:jeudi Janvier 1970 (Thursday January 1970)
解析字符串并将其转换为日期可以解决这个问题。这里有一个函数可能对你有帮助。
<?php
date_default_timezone_set('UTC');
function convert_date($date) {
$date_arr = explode(" ",$date);
$time = explode("h",$date_arr[5]);
$months = array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
return date('c',mktime($time[0],$time[1],0,array_search($date_arr[2], $months)+1,$date_arr[1],$date_arr[3]));
}
$date = "Samedi 14 janvier 2017 - 13h45";
echo convert_date($date);
?>
下面是一段对日期数组进行排序的代码。
$date_arr[0] = convert_date("Samedi 14 janvier 2017 - 13h45");
$date_arr[1] = convert_date("Samedi 12 mars 2017 - 13h45");
$date_arr[2] = convert_date("Samedi 18 juin 2013 - 13h45");
print_r($date_arr);
arsort($date_arr);
echo "After sorting";
print_r($date_arr);