2 votes

Comment incrémenter un timestamp MySQL en PHP ?

J'ai donc un timestampl MYSQL qui génère des valeurs qui ont 4 heures d'avance sur ce qu'elles devraient être. Comment puis-je soustraire 4 heures de l'horodatage MySQL et l'afficher ?

Voici mon code actuel

$mdate = date('F j, Y, g:i a',strtotime( $bm->date_added)); 
//$bm->dated_added returns the times stamp//
echo $mdate;

Merci

4voto

Aron Rotteveel Points 27894

Lorsqu'il est fourni avec un deuxième argument, strtotime() effectuera les calculs sur la base de cette date :

$mdate = date('F j, Y, g:i a', strtotime('-4 hours', $bm->date_added)); 

strtotime() peut effectuer plusieurs calculs basés sur des modificateurs comme ceux-ci. Exemples tirés du manuel :

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

2voto

ceejayoz Points 85962

Vous devriez vraiment trouver la racine du problème et la résoudre. Il est fort probable que vous deviez régler le fuseau horaire de MySQL pour qu'il corresponde au vôtre (ou que le serveur lui-même ait une date erronée).

Cela dit, vous pouvez simplement soustraire 14 400 secondes du résultat de strtotime.

$mdate = date('F j, Y, g:i a',strtotime($bm->date_added) - 14400);

1voto

threed Points 111

Utilisez la fonction SUBTIME() dans votre requête si vous ne pouvez pas modifier l'heure du serveur pour refléter un horodatage approprié.

1voto

Atticus Points 2558

Approche SQL :

SELECT TIMESTAMPADD(the_timestamp, INTERVAL -4 HOURS)

Cela vous donnera l'heure de décalage

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X