2010-05-01 4 views
1

Disclaimer, je ne suis pas un programmeur PHP, donc vous pourriez trouver cette question triviale. C'est pourquoi je te demande!Quelle (s) fonction (s) PHP puis-je utiliser pour effectuer des opérations sur des horodatages non-entiers?

J'ai ce genre d'horodatage: 2010-05-10T22: 00: 00 (C'est AMJ)

Je voudrais soustraire, par exemple, 10 jours (ou mois, peu importe) de cela, et avoir mon résultat dans le même format, c.-à-d. 2010-04-30T22: 00: 00.

De quelle (s) fonction (s) ai-je besoin de faire cela en PHP?

Remarque: J'utilise ceci pour faire un champ calculé dans Drupal. Le résultat sera la date à laquelle un e-mail est envoyé. Question de bonification: Si 2010-05-10T22: 00: 00 signifie «10 mai 2010 à 22 h», y a-t-il un horodatage équivalent à «10 mai 2010 (toute la journée)»?

+0

Désolé, je devrais préciser que j'utilise PHP 5.2. – stephenhay

+0

Merci pour les réponses ... Problème résolu, et une compréhension plus profonde des dates et des horodateurs :) – stephenhay

Répondre

2

Vous devez utiliser la classe datetime: http://php.net/manual/en/book.datetime.php

DateTime Diffrence: http://www.php.net/manual/en/datetime.diff.php

DateTime Soustraction: http://www.php.net/manual/en/datetime.sub.php

Bonus réponse: Oui vous pouvez faire cela, vous devez convertir votre date d'horodatage en utilisant DateTime () deux fois (1. Avec 00:00:00 heure, et avec 23:59:59 temps), lorsque vous comparez ces horodatages à votre horodatage original (peut-être moyen), et vous avez une réponse à partir des résultats de comparaison.

0

Pour activer les opérations sur une valeur de date, vous devez d'abord créer un objet DateTime. En PHP 5.3 un plus tard, vous pouvez utiliser DateTime::createFromFormat(). Dans les versions antérieures de PHP, vous devez créer un objet DateTime avec new DateTime();.

Les manipulations possibles avec un objet DateTime sont également répertoriées dans le manuel here.

Questions connexes