Guest Marmotte73 Posté 14 Novembre 2006 Posté 14 Novembre 2006 Bonjour, Soit une variable $timestamp (format : AAAA-MM-JJ HH:MM:SS) Je cherche à retrancher une seconde à cette variable tout en restant dans ce format Exemple : de 2006-10-10 05:30:28, je cherche à obtenir 2006-10-10 05:30:27 Merci pour vos réponses
xorax Posté 18 Novembre 2006 Posté 18 Novembre 2006 pas de façon vraiment très simple à ma connaissance... et c'est vrai que c'est assez abérant. tu peux utiliser : $at = strptime($timestamp, '%Y-%m-%d %T'); $at sera alors un tableau contenant les minuts les secondes...etc mais il faudra que convertisse ça en timstamp pour retirer une seconde pour enfin reconvertir en date avec strftime. mais je suppose que tu tire cette date du base sql donc tu peux utiliser la fonction sql UNIX_TIMESTAMP(date) pour que ta requte te retourne un timestamp au lieu de la date. d'ailleur ça ouvre un peu un débat sur l'utilité d'utiliser des colonnes DATE, TIME ou DATETIME dans mysql...
TheRec Posté 18 Novembre 2006 Posté 18 Novembre 2006 Bonjour, Si tu tiens à le faire en PHP tu peux faire ainsi : $timestamp = date("Y-m-d h:m:n",strtotime($timestamp) - 1)); strtotime converti un timestamp de format quelconque (avec certaines limitation, voir manuel) en timestamp Unix. Le timestamp Unix étant le nombre de secondes depuis le premier janvier 1970 à minuit (GMT) tu peux soustraire un nombre de secondes et revenir au format désiré avec la fonction date et le format que tu souhaites (voir manuel). Ce n'est pas très "académique", ni très fiable car si tu dois traiter des dates avant 1970, ces fonctions PHP ne fonctionnent plus. Sinon en SQL, du moins en MySQL, tu peux utiliser la fonction SUBTIME (MySQL >= 4.1.1) : SELECT SUBTIME(champ_avec_ton_timestamp,'1' FROM ta_table) Bonne continuation.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant