php d'obtenir la date -1 mois
Voici donc la situation. Dans ma db table j'ai une colonne appelée expire_date, où j'ai mis une certaine date pour chaque ligne.
Ainsi, par exemple, la date d'expiration est 28-04-2012
J'ai besoin d'un code php qui envoie un utilisateur donné un avis par courriel que la certaine chose qui expire à cette date de 1 mois à partir de l'expiration. Donc, si aujourd'hui est 28-03-2012, ce qui signifie qu'il y a seulement 1 moonth avant que la chose arrive à expiration.
Je n'ai pas de code pour ce parce que je ne sais pas comment résoudre le -1 mois.
OriginalL'auteur gogu | 2012-03-28
Vous devez vous connecter pour publier un commentaire.
De la première à obtenir la date dans un mois avec php:
Ensuite, vous pouvez effectuer une sélection:
Et là, vous avez un tableau avec tous les éléments qui expire dans moins d'un mois.
Si vous voulez exactement ceux qui expire dans 1 mois:
J'espère que cette aide
en fait vous devriez être en mesure d'obtenir la même date à l'aide de 1 moins de la fonction date() tels que:
date('Y-m-d', strtotime(date('Y-m-d') . ' +1 month'));
En fait, je pense juste
echo date('Y-m-d', strtotime('+1 month'));
droit?OriginalL'auteur Tales
http://us2.php.net/manual/en/function.strtotime.php
OriginalL'auteur Expert wanna be
Simplement ;
OriginalL'auteur SudarP
Peut-être que vous devriez le faire en SQL plutôt que de PHP non?
Si vous voulez le faire en PHP, voici une manière plus propre que @Expert voulez être
OriginalL'auteur haltabush
Comme l'a souligné @Mikhail vous devez utiliser
=
de sorte que vous seulement de récupérer un enregistrement une fois. Vous ne voulez pas être spammé à vos utilisateurs de tous les jours et pour tout le mois en cours d'exécution jusqu'à la expire_date -Si votre expire_date contient un DATETIME, par opposition à une valeur de DATE, vous devriez utiliser quelque chose comme -
OriginalL'auteur nnichols
Notez que j'utilise
=
et pas moins, parce que si vous comparez juste que c'est moins de un mois, alors vous serez en envoyant les utilisateurs chaque jour au cours du dernier mois.OriginalL'auteur Mikhail
Vous pouvez faire usage de la
ADDDATE()
fonction de votre Requête MySQL.Plus ici.
Si vous avez un indice sur votre
expire_date
colonne, ce qui peut être fait assez rapidement si vous interrogez les entrées avec unWHERE
instruction comme:(En savoir plus sur
CURDATE()
droit ici)Si vous n'avez que chaque jour, exactement une fois il ne sélectionnez toutes les personnes au max une fois et de ne pas envoyer l'e-mail deux fois, car il ne choisit celles qui sont exactement 1 mois à partir de leur date d'expiration.
Bien sûr, cela fonctionne sans aucun soin supplémentaire au sujet de la représentation des dates si vous utilisez un DATE fieldtype dans votre table MySQL.
OriginalL'auteur s1lence
Vous aurez probablement besoin de pour transformer votre chaîne de date en temps unix, puis faites un select datediff. (Je suppose que vous êtes à l'aide de sql).
OriginalL'auteur
Comment obtenir du mois précédent la date en php
OriginalL'auteur Krishnamoorthy Acharya
Pour le SQL, vous pouvez utiliser la requête suivante
DATE_FORMAT()
sur la DATE/DATETIME champ que vous souhaitez filtrer par rendront tout indice inutile.OriginalL'auteur brizido