Je travaille sur une migration de blog à partir d'un blog personnalisé vers Wordpress. L'un des champs que Wordpress recherche dans la base de données est un horodatage défini sur GMT, soit 4 heures d'avance sur notre temps. Donc, je dois essentiellement prendre notre horodatage (au format AAAA-MM-JJ HH: MM: SS), et ajouter quatre heures à cela. Je regardais la commande MySQL "ADDTIME", mais je pense que cela ne fonctionne que sur les sélections, pas sur les insertions. J'ai travaillé un script qui a fait exploser la date dans les parties, et ajouté 4 heures à l'heure, mais la logique qui s'ensuivrait pour vérifier quand 4 heures repasse au jour suivant/mois/année semblait un peu excessif.Comment ajouter 4 heures à l'heure dans PHP/MySQL
Répondre
date($format, strtotime("$date + 4 hours"));
Qu'en est-:
date("Y-m-d H:i:s", strtotime("2009-08-09 23:44:22")+4*60*60)
ou même
date("Y-m-d H:i:s", strtotime("2009-08-09 23:44:22 + 4 hours"))
aurait besoin d'un peu de vérification des erreurs, mais devrait résoudre votre problème.
Il n'y a rien qui empêche ADDTIME()
d'être utilisé dans un INSERT
OU UPDATE
, mais DATE_ADD()
est probablement ce qui fonctionnera le mieux:
INSERT INTO table_name
SET my_datetime = DATE_ADD('2009-11-01 19:30:00', INTERVAL 4 HOURS),
...other insert columns here... ;
'Table UPDATE Champ SET = DATE_ADD (champ, INTERVAL 4 HEURES);' est un peu plus générique :) – jensgram
Je supposais que SerpicoLugNut avait déjà extrait des horodatages, donc c'était la syntaxe que j'utilisais. Chaque horodatage extrait finirait par ressembler à INSERT. Drôle, j'ai ajouté le format générique comme commentaire ci-dessus juste quand vous avez quitté le vôtre. :-) – artlung
C'est 'INTERVAL 4 HEOUR' et pas' INTERVAL 4 HEURES' sur MySQL 5.5.44 –
Ou mieux dans SQL
DATE(DATE_ADD(`Table`.`Column`, INTERVAL 4 HOURS))
Il semble que le TZ de votre base de données est mis à GMT (UTC), qui est comme il se doit. Vous devez convertir votre date locale en GMT lors de l'ajout à la base de données.
du MySQL 5.1 Reference Manual:
CONVERT_TZ(dt,from_tz,to_tz)
CONVERT_TZ() convertit une valeur datetime dt de fuseau horaire donnée par FROM_TZ à la zone de temps donnée par to_tz et renvoie la valeur résultante. Les fuseaux horaires peuvent être spécifiés comme décrit à la Section 5.10.8, «Prise en charge du fuseau horaire du serveur MySQL». Cette fonction renvoie NULL si les arguments sont invalides.
Si la valeur tombe en dehors de la plage prise en charge du type TIMESTAMP lors de la conversion de f_t_tz en UTC, aucune conversion ne se produit. La plage TIMESTAMP est décrite à la Section 11.1.2, «Aperçu des types de date et d'heure».
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
-> '2004-01-01 13:00:00'
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
-> '2004-01-01 22:00:00'
note: pour les fuseaux horaires symboliques au travail (GMT, PST), vous devez configurer les tables liées au fuseau horaire dans le mysql base de données (zoneinfo). – dar7yl
Pour toutes les réponses à l'aide DATE_ADD, la syntaxe correcte est "4 HEURE" non "4 HEURES" (au moins dans la version actuelle de MySQL):
UPDATE table SET field = DATE_ADD(field, INTERVAL 4 HOUR);
J'ai utilisé cette méthode:
$format = Y-m-d; //you can use any format if you want
$date = $row['date']; // from mysql_fetch_array
$date2 = date($format, strtotime("$date + 4 week"));
echo $date;
Si vous utilisez (jour/mois/année) [format de la date du Brésil] comme ci-dessous, il ne fonctionne pas:
$ todays_date = date ("d/m/YH: i: s");
echo "Date/heure du serveur".$ todays_date;
echo "Server Date/heure + 2 heures" .date ("d/m/Y H: i: s", strtotime ("todays_date de $ + 2 heures"));
Résultat:
Date serveur/heure 10/04/2012 07:44:36
Date de serveur/hou r + 2 heures 04/10/2012 09:44:36
Vous devez vous (mois/jour/année) et il fonctionne parfaitement:
$ todays_date = date ("m/d/YH: i: s"); echo "Date du serveur/heure".
$ aujourdhui. "
"; echo "" date Server/heure + 2 heures ".Date (" m/d/YH: i: s », strtotime ("todays_date de $ + 2 heures"));
Résultat:
Server Date/heure 04/10/2012 07:44:36
Server Date/heure + 2 heures 04/10/2012 09:44:36
de travail 100%
<?php
$datee= date("Y-m-d", strtotime("$last_update+ 10 hours"));
$timee= date("H:i:s", strtotime("$last_update+ 10 hours"));
?>
Last update was on: <?php echo $datee; ?> at <?php echo $timee; ?>
$ last_update est un horodatage de contenu de valeur de mysql
Le résultat sera comme ceci "La dernière mise à jour date du: 2015-02-05 à 05:01:43"
<?php
function data_time($DT, $pm, $val, $time_type){
$time = date("H:i:s");
$date = date("d.m.Y");
if($DT=='d'){
switch($pm){
case '+': $newData = date("d.m.Y ", strtotime("$date + $val $time_type"));
break;
case '-': $newData = date("d.m.Y ", strtotime("$date - $val $time_type"));
break;
}
return $newData;
}
if($DT=='t'){
switch($pm){
case '+': $newTime = date("H:i:s ", strtotime("$time + $val $time_type"));
break;
case '-': $newTime = date("H:i:s ", strtotime("$time - $val $time_type"));
break;
}
return $newTime;
}
}
$newData = data_time('t','+',5,'year')
//or
$DataTime = 'd'; // 't' or 'd'
$PlusMinus ='+'; // '+' or '-'
$val = 1; // 0-9
$DMT ='month'; // 'day', 'month' or 'year'
$newData = data_time($DataTime, $PlusMinus, $val, $DMT);
echo $newData;
?>
downvoting: ceci est mal formaté, beaucoup plus compliqué que les autres réponses sans aucune explication. – CaringDev
vous le trouvez difficile? entrez une valeur 4? $ newData = data_time (t, '+', 5, jour); – Viktor
vous pouvez changer un cas en variables ou en valeurs booléennes. Cette solution comprend un grand nombre de fonctionnalités, "sec, min, heures, jours, mois, années" S'il vous plaît montrer votre solution, ce qui est utile pour moi. Et désolé pour mes gars anglais, j'apprends. Je viens de montrer ce que j'ai écrit pendant mes études à la maison, et non copié et collé. Peut-être son aide sur quelqu'un. – Viktor
UPDATE table SET field = DATE_ADD(field, INTERVAL 4 HOURS);
Il est donc utile en php pour ajouter à la colonne fucntion
- 1. Sur MouseOver doTooltip dans phpmysql
- 2. Comment ajouter des heures à un NSDate?
- 3. Date d'arrivée à partir de 4 heures
- 4. ajouter des heures en excel basé sur 8 heures
- 5. Ajouter des heures de travail à l'horodateur
- 6. Ajouter 13 heures à un horodatage
- 7. Ajouter 2 heures à l'heure actuelle dans MySQL?
- 8. comment ajouter 24 heures dans une colonne en ms accès
- 9. comment ajouter 4 vue d'image à flipper dans android?
- 10. ajouter les heures et minutes à get_selectedDate() du contrôle RadDatePicker
- 11. Flex 4/Flash 4 Ajouter à l'état actuel
- 12. XCode 4: Comment ajouter un framework existant?
- 13. Silverlight 4: Comment ajouter un menu contextuel à DatagridColumnHeader?
- 14. comment ajouter 4 boutons dans la barre d'UInav pour l'iphone
- 15. setHours à 17 heures
- 16. mysql 12 heures à 24 heures de temps de conversion
- 17. php Format de 12 heures à format 24 heures conversion
- 18. Android - Avoir un service exécuté tous les jours à 4 heures
- 19. Dynamiquement ajouter des contrôles utilisateur à Silverlight 4 page
- 20. CRM 4 Ajouter une liste de sélection
- 21. Comment ajouter dynamiquement un test à une suite de tests dans JUnit 4?
- 22. Ajouter Javascript Dynamiquement au Runtime Silverlight 4
- 23. Ajouter des marges intérieures à 4 colonnes CSS
- 24. Comment afficher les heures d'ouverture?
- 25. Comment obtenir des heures: minutes
- 26. php ajouter des heures à la date de sortie mauvais résultat
- 27. comment convertir minutes jours, heures, minutes
- 28. Comment analyser les "GMT + heures: minutes" ou "GMT heures: minutes" à l'aide SimpleDateFormat en Java (Android)
- 29. Je veux ajouter des heures ou des minutes à l'heure actuelle
- 30. comment convertir la chaîne en format d'heure et ajouter deux heures
Il n'y a rien qui vous empêche de le faire dans la base de données.Vous pouvez migrer les données depuis la base de données existante sans modifier les horodatages, puis faites UPDATE blog_table SET blog_timestamp = DATE_ADD (blog_timestamp, INTERVAL 4 HEURES); - qui accomplirait ce que vous voulez. – artlung