我有一个数组,其中包含日期转换为日期并对其进行排序。 以下是从数组中提取的字符串: 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));
我获得了:1970年的jeudi Janvier(1970年1月4日星期四)
答案 0 :(得分:1)
解析字符串并将其转换为日期可以解决问题。这是一个可以帮助你的功能。
<?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);