2010-02-09 9 views
4

Je suis en train de convertir 2010-02 en Février 2010. Mais, je continue d'obtenir Décembre, 1969php - mktime ou strtotime?

J'ai essayé d'utiliser mktime, strtotime, et une combinaison des deux, mais n'ont toujours pas été capable de le faire ...

C'est ce que j'ai essayé plus récemment ...

$path_title = date('F, Y', mktime(0,0,0,2,0,2010)); 

Répondre

8

Ce serait une façon de le faire:

$dateString = '2010-02'; 
list($year, $month) = explode('-', $dateString); 
$timeStamp = mktime(0, 0, 0, $month, 1, $year); 
echo date('F, Y', $timestamp); 

Une autre façon serait:

$dateString = '2010-02'; 
$timestamp = strtotime($dateString . '-01'); 
echo date('F, Y', $timestamp); 

strtotime ne peut pas gérer les dates ambiguës comme "2010-02", mais si vous faites C'est une date complète, ça devrait marcher.

Sinon, vous voudrez peut-être chercher quelque chose comme DateTime::createFromFormat.

+0

Merci pour votre inscription. Et pour le lien, parce que je pense que cela sera utile à l'avenir! – n00b0101

0

Essayez ceci:

$str = '2010-02'; 
echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4))); 

vous devez vous assurer que vous utilisez val valeurs d'id à mktime(). Dans votre exemple que vous avez édité dans la question, vous avez 0 comme le jour, qui est effectivement le premier jour moins un, ce qui vous met dans le mois précédent.