0

I have an array of dates as listed below:

$date_events = array(
    0 => 'Lundi, janvier 30, 2017',
    1 => 'Mardi, janvier 24, 2017',
    2 => 'Mardi, janvier 17, 2017',
    3 => 'Mardi, janvier 10, 2017',
    4 => 'Mercredi, janvier 25, 2017',
    5 => 'Lundi, janvier 2, 2017',
    6 => 'Dimanche, janvier 1, 2017',
    7 => 'Mardi, janvier 3, 2017',
    8 => 'Lundi, février 13, 2017'
);

I want to convert these days in "d-m-Y" Format.Everything is working fine when the dates are in English, but my problem is with French date that is not being converted and returning '01-01-1970'. I am using below code:

for( $i=0 ; $i < count($date_events) ; $i++){
    $time = strtotime($date_events[$i]);
    $newformat[] = date("d-m-Y",$time);
}

Can someone help me out with this date conversion for French?

2 Answers2

0
$date_events = array(
    0 => 'Lundi, janvier 30, 2017',
    1 => 'Mardi, janvier 24, 2017',
    2 => 'Mardi, janvier 17, 2017',
    3 => 'Mardi, janvier 10, 2017',
    4 => 'Mercredi, janvier 25, 2017',
    5 => 'Lundi, janvier 2, 2017',
    6 => 'Dimanche, janvier 1, 2017',
    7 => 'Mardi, janvier 3, 2017',
    8 => 'Lundi, février 13, 2017'
);

$frToEn = array(
    'janvier'=>'jan',
    'février'=>'feb',
    'mars'=>'march',
    'avril'=>'apr',
    'mai'=>'may',
    'juin'=>'jun',
    'juillet'=>'jul',
    'août'=>'aug',
    'septembre'=>'sep',
    'octobre'=>'oct',
    'novembre'=>'nov',
    'décembre'=>'dec',

    'lundi'=>'monday',
    'mardi'=>'tuesday',
    'mercredi'=>'wednesday',
    'jeudi'=>'thursday',
    'vendredi'=>'friday',
    'samedi'=>'saturday',
    'dimanche'=>'sunday'
);
foreach($date_events as &$date){
    $date = strtr(strtolower($date),$frToEn);
    $date = array($date,date('Y-m-d',strtotime($date)));
}
print '<pre>';
print_r($date_events);

One way to rome...

JustOnUnderMillions
  • 3,741
  • 9
  • 12
0

Parse about any English textual datetime description into a Unix timestamp

    <?php


$date_events = array(
    0 => 'Lundi, janvier 30, 2017',
    1 => 'Mardi, janvier 24, 2017',
    2 => 'Mardi, janvier 17, 2017',
    3 => 'Mardi, janvier 10, 2017',
    4 => 'Mercredi, janvier 25, 2017',
    5 => 'Lundi, janvier 2, 2017',
    6 => 'Dimanche, janvier 1, 2017',
    7 => 'Mardi, janvier 3, 2017',
    8 => 'Lundi, février 13, 2017'
);
$stack = array();

foreach( $date_events as $key => $value ){

$value = str_replace(",", "", $value);
$value = str_replace("Lundi", "", $value);
$value = str_replace("Mardi", "", $value);
$value = str_replace("Mercredi", "", $value);
$value = str_replace("Jeudi", "", $value);
$value = str_replace("Vendredi", "", $value);
$value = str_replace("Samedi", "", $value);
$value = str_replace("Dimanche", "", $value);
$value = str_replace("janvier", "January", $value);
$value = str_replace("février", "February", $value);
$value = str_replace("mars", "March", $value);
$value = str_replace("avril", "April", $value);
$value = str_replace("mai", "May", $value);
$value = str_replace("juin", "June", $value);
$value = str_replace("juillet", "July", $value);
$value = str_replace("août", "August", $value);
$value = str_replace("septembre", "September", $value);
$value = str_replace("octobre", "October", $value);
$value = str_replace("novembre", "November", $value);
$value = str_replace("décembre", "December", $value);
$time = strtotime($value);

$newformat = date('d-m-Y',$time);
array_push($stack, $newformat);
}
print_r($stack);
Royalxm
  • 21
  • 5