翻译和排序法语日期php


Translate and sort French date php

我有一个包含日期的数组,要将其转换为日期并对其进行排序。以下是从数组中提取的字符串: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);