Question

Je suis en train de convertir 2010-02 à Février 2010. Mais, je continue à recevoir Décembre 1969

Je l'ai essayé d'utiliser mktime, strtotime, et une combinaison des deux, mais qui ont encore pas été en mesure de le faire ...

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

$path_title = date('F, Y', mktime(0,0,0,2,0,2010));
Était-ce utile?

La solution

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 une date complète, il devrait fonctionner.

Dans le cas contraire, vous voudrez peut-être se pencher sur quelque chose comme DateTime::createFromFormat .

Autres conseils

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 des valeurs valides pour mktime(). Dans votre exemple, que vous avez modifié la question, vous avez 0 comme le jour, ce qui est effectivement le premier jour, moins un, qui vous met dans le mois précédent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top