2013-02-19 5 views
2

Je voudrais soustraire 180 jours d'un GMDATE() (pour UTC) que j'ai dans un script PHP. Je viens de regarder SO, mais presque personne n'utilise gmdate().Php - Soustraire des jours de gmdate() date

C'est ce que j'ai:

$from_date = gmdate("Y-m-d H:i:s"); 

Yat-il un moyen simple de soustraire le montant X de jours de cela, sans utiliser une autre fonction tout à fait? Ou devrais-je le faire d'une autre manière?

Répondre

4

Utilisez DateHeure. Beaucoup mieux pour travailler avec des dates, surtout lorsque vous travaillez avec des fuseaux horaires.

$datetime = new DateTime(null, new DateTimeZone('UTC')); 
$datetime->modify('-180 days'); 
echo $datetime->format('Y-m-d H:i:s'); 

See it in action

Référence

+0

Est-ce formaté en UTC en standard, quel que soit le fuseau horaire de mon serveur? – TheCarver

+1

J'ai mis à jour mon code pour m'assurer que c'était toujours le cas sans affecter les autres codes DateTime. –

1

Formaté en UTC devrait ressembler;

$timezone = new DateTimeZone('UTC'); 
$datetime = new DateTime('NOW', $timezone); 
$datetime->modify('-180 days'); 
echo $datetime->format('Y-m-d H:i:s'); 

Datetime: PHP DateTime class

public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]])

Fuseau horaire PHP DateTimeZone class

public __construct (string $timezone)

Questions connexes