10
votes

PHP - une heure plus tôt que DateTime

J'ai un problème ici ..

supposé que j'ai ce genre de date de temps. xxx

J'ai besoin que cela soit converti au format UNIX-TIMESTAMP mais une heure plus tôt..J'ai essayé xxx

, mais me semblait que c'est faux. Il est retourné 0 quand je me suis faufilé dans la table.

Quel est le moyen approprié d'y parvenir?

merci.


1 commentaires

Il y a 3600 secondes en une heure et 86400 secondes en une journée. Vous devez soustraire 3600 secondes. Strtotime (Date de $) - 3600;


5 Réponses :


8
votes

StrtOTIME vous donnera l'horodatage UNIX de votre date. À partir de cet horodatage, vous soustrayez ensuite votre heure: xxx

si vous appelez strtotime ($ date - 3600) , c'est comme l'obtention de l'heure pendant -3600 (par exemple, < Code> strtotime (-3600) ) qui n'a aucun sens car strtotime attend une chaîne comme premier argument.


2 commentaires

Il y a 3600 secondes en une heure et 86400 secondes en une journée.


Ah oui ... j'étais totalement en désordre ... je ne devrais pas compter 60 * 60 * 24 ... ça me donne des secondes dans une journée ... stupide me :(



6
votes

Vous pouvez faire: xxx

espère qu'il aide


1 commentaires

Bien que cette réponse soit assez explicite à ceux qui sont familiarisés avec date () et strtotime () , il améliorerait votre réponse avec quelques explications.



3
votes

86400 secondes est un jour, pas une heure.

La sortie de Strtotime () est un horodatage UNIX. 3600 secondes plus tôt est que l'horodatage moins une heure. Ainsi: xxx

ou, en fonction du format d'origine de $ SIVERING: xxx

et n'oubliez pas < Un href = "http://php.net/date_default_timezone_set" rel = "nofollow"> date_default_timezone_set ()


0 commentaires

0
votes

Essayez cette requête

$query= "insert into yourTable(otherValues, date) 
values (otherFields, DATE_ADD(NOW(),INTERVAL -1 hour))


1 commentaires

Townvoted car op ne demande pas une solution mysql ni an (code> insert . Toutes les réponses devraient également inclure une sorte d'explication afin que les lecteurs puissent bien comprendre / bénéficier de la réponse / de l'approche.



2
votes

personne n'a offert un DateTime code> solution objet encore, alors je le ferai. Il est la méthode la plus moderne pour le traitement datetime et ne nécessite pas de calcul des minutes et secondes.

Je aime toujours à tomber dans une sorte de déclaration de fuseau horaire pour rendre les choses définitives. L'heure d'été est normalement une préoccupation avec datetime manipulations, mais probablement bien dans ce cas. Sentez-vous libre de modifier le fuseau horaire pour votre cas p>

PHP liens manuel:. P>


0 commentaires