翻译和排序法国日期PHP

时间:2016-11-04 08:06:44

标签: 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));

我获得了:1970年的jeudi Janvier(1970年1月4日星期四)

1 个答案:

答案 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);