J'essaie personnellement d'éviter de jouer directement avec la valeur time()
, pour des raisons lorsque vous essayez d'ajouter ou de soustraire des jours/semaines/etc. avec des années bissextiles, etc. Pour toutes fins pratiques, strtotime()
est toujours fiable:
echo date('H/i/s', strtotime('-10 seconds', time())); // time() - 10 seconds
** EDIT **
Pourquoi time() - 10
est not good?
<?php
// this is my timezone, but it applies to any DST zones....
date_default_timezone_set('America/Montreal');
$time = strtotime('2010-11-07 02:00:05');
var_dump(date(DATE_RFC822, $time - 10));
var_dump(date(DATE_RFC822, strtotime('-10 seconds', $time)));
La sortie de c'est
string(29) "Sun, 07 Nov 10 01:59:55 -0500"
string(29) "Sun, 07 Nov 10 01:59:55 -0400"
Notez comment l'UTC change dans le second exemple? Où il n'est pas entièrement correct et devrait être Sun, 07 Nov 10 02:59:55 -0500
(voir here pour le réinitialiser à l'UTC correct) soustrayant 10 à time()
est encore pire! Il renvoie un horodatage d'une heure dans le temps. Ceci peut conduire à des erreurs de données potentielles, etc.
La même chose s'applique en ajoutant et en soustrayant des jours et des mois; manipuler directement time()
n'est tout simplement pas une bonne idée et strtotime()
retournera toujours l'horodatage correct pour la manipulation du temps donné. Période.
Pour quelles raisons ne voulez-vous pas déduire 10 secondes de quelque chose comme 'time()'? – alex