2017-03-21 3 views

Répondre

3

essayer

$date = '12/12 2016'; 
$datetime = \DateTime::createFromFormat('n/j Y', $date); 
$datetime->getTimestamp(); 
0

Vous devez présenter la date à strtotime dans un format qu'il peut comprendre. Donc, soit modifier le format comme ça.

Si le mois et l'année sont séparés par un /, le format de date US est supposé être MM/JJ/AAAA.

Si elles sont séparées par un - alors un modèle européen est suppose par exemple JJ-MM-YYYYY

$date = '12/12 2016'; 
$fixed = str_replace(array(' ', '/'), '-', $date); 
echo strtotime($fixed); 
echo PHP_EOL; 
echo date('d/m/Y',strtotime($fixed)); 

Vous pouvez également utiliser l'objet DateTime

$date = '12/12 2016'; 
$dt = \DateTime::createFromFormat('n/j Y', $date); 
echo $dt->getTimestamp(); 
echo PHP_EOL; 
echo $dt->format('d/m/Y'); 
0

Une autre option possible est d'utiliser régulièrement expression pour extraire les composants de date, puis utilisez mktime() pour créer l'horodatage.

$date = '12/12 2016'; 

preg_match_all('/([0-9]+)/', $date, $dateParts); 

$timestamp = mktime(0,0,0, $dateParts[0][0], $dateParts[0][1], $dateParts[0][2]); 

echo $timestamp; 

Résultat:

1481500800 
0

Cela a fonctionné pour moi.

$date = '12-12-2016'; 
echo date('m-d-Y', strtotime($date)); 

echo "<br><br>"; 

$date1 = strtotime($date); 
$date1 = date('m-d-Y', $date1); 
echo $date;