2009-03-30 7 views
0

Nous créons un horodatage unix avec la méthode mktime qui offre les attributs suivants:comment obtenir l'horodatage correct avec le paramètre is_dst en PHP?

print_r(mktime(0,0,0,3,1,2009)); 
print_r(mktime(null,null,null,3,1,2009)/60/60/24) . "days");` 

cela crée un résultat de

1235862000 

14303.958333333 days 

cela devrait être 14304 jours. Le problème dans ce cas est l'heure d'hiver. Vous pouvez utiliser le paramètre is_dst, et lorsque nous utilisons 0 (par défaut -1) cela fonctionne parfois correctement, ce qui donne 14304 jours.

Mais parfois, cela donne problème suivant:

normes strictes: mktime() [function.mktime]: Le paramètre is_dst est dépréciée

Je ne sais pas ce que cela signifie et ce que je peut faire à ce sujet. Une idée quelqu'un? parce que l'heure d'hiver cause de terribles maux de tête ....

Répondre

2
date("I", time()); 

Vous donnera 1 si son heure d'été et 0 si ce n'est pas.

2

A partir de la page de manuel php:

« Chaque appel à une fonction date/heure générera un E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message E_STRICT si vous utilisez les paramètres du système ou de l'environnement TZ variable. Voir aussi date_default_timezone_set() "

qui signifie probablement que vous devez utiliser date_default_timezone_set() précédemment et sauter le paramètre is_dst

Questions connexes