<?php
$date = "04-15-2013";
$date = strtotime($date);
$date = strtotime("+1 day", $date);
echo date('m-d-Y', $date);
?>
Cela me rend fou et semble si simple. Je suis assez nouveau en PHP, mais je n'arrive pas à comprendre. L'écho renvoie 01-01-1970
.
La $ date viendra d'un POST
au format m-d-Y
, il me faut ajouter un jour et l'ajouter comme nouvelle variable à utiliser ultérieurement.
Dois-je convertir $ date en Y-m-d
, ajouter 1 jour, puis reconvertir en m-d-Y
? Serais-je mieux d'apprendre à utiliser DateTime
?
$date = DateTime::createFromFormat('m-d-Y', '04-15-2013');
$date->modify('+1 day');
echo $date->format('m-d-Y');
Ou dans PHP 5.4+
echo (DateTime::createFromFormat('m-d-Y', '04-15-2013'))->modify('+1 day')->format('m-d-Y');
référence
$date = strtotime("+1 day");
echo date('m-d-y',$date);
use http://www.php.net/manual/en/datetime.add.php comme
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('1 days'));
echo date_format($date, 'Y-m-d');
sortie
2000-01-2
Le format que vous avez utilisé n'est pas reconnu par strtotime (). Remplacer
$date = "04-15-2013";
par
$date = "04/15/2013";
Ou si vous voulez utiliser -
, utilisez la ligne suivante avec l'année devant:
$date = "2013-04-15";
En fait, je voulais la même chose, obtenir un an de retard sur une date donnée! :-)
Avec le soupçon de réponse ci-dessus de @ mohammad mohsenipur, je suis arrivé à la suivante lien , via son lien indiqué!
Heureusement, il existe une méthode identique à la méthode date_add, nommée méthode date_sub! :-) Je fais ce qui suit pour faire ce que je voulais!
$date = date_create('2000-01-01');
date_sub($date, date_interval_create_from_date_string('1 years'));
echo date_format($date, 'Y-m-d');
J'espère que cette réponse aidera aussi quelqu'un! :-)
Bonne chance les gars!