Retrouvez les publications relatives à ces discussions dans
nos rubriques PHP, SQL.
liste des forums
liste des discussions
Participer à la discussion
-
Message publié le mardi 10 août 2010 - 18h28 par Styleman. ++
Styleman
-
Bonjour à tous,
Alors, j'espère que la question n'a pas déjà été posée mais malgré mes recherches, je n'ai rien vu (en même temps j'ai déja du mal à exprimer ce que je veux donc pour chercher c'est pas facile).
Alors voilà, j'ai reçu une belle liste excel reprenant une liste d'évènements et leur date et heure.
Seulement, lorsque j'importe cela dans ma table SQL, il me met la date au format Excel, donc pour le 05/09/2010 j'ai "40426" et l'heure qui est 13:00 en format heure donne "0.45166666...", alors je me suis dis que c'était peut etre tout simplement en timestamp et que je pouvais convertir cela assez facilement, mais non, je ne trouve pas...apparemment c'est le même principe mais depuis le 1er janvier 1900...Mais j'avoue que je n'ai pas encore bien réussi à faire le calcul...
Donc voilà, maintenant que ces dates sont comme ça dans ma table, il me faudrait le moyen de les convertir avec php, ou alors de faire en sorte qu'en les important à partir du XLS, elle se mettent directement dans le bon format dans ma base...
Merci beaucoup pour votre aide.
-
Message publié le vendredi 20 août 2010 - 18h18 par arthenon.
-
-
Message publié le vendredi 20 août 2010 - 22h02 par nours312.
nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
-
Seulement, lorsque j'importe cela dans ma table SQL, il me met la date au format Excel, donc pour le 05/09/2010 j'ai "40426" et l'heure qui est 13:00 en format heure donne "0.45166666...", alors je me suis dis que c'était peut etre tout simplement en timestamp et que je pouvais convertir cela assez facilement, mais non, je ne trouve pas...apparemment c'est le même principe mais depuis le 1er janvier 1900...Mais j'avoue que je n'ai pas encore bien réussi à faire le calcul...
heuu ... une hypothèse :: tu est sur de ton Heure ??
t'es sur que ce n'est pas "0.54166666..." ??? auquel cas, j'aurais la solution !... :D :p
(13:00:00 = 13*60*60 => en seconde) / (24*60*60 => secondes) => "0.54166666..." ou 54,16% de la journée si tu préfères !... ainsi, une fois que tu as tous tes résultats dans une table "tampon", tu dois aisément pouvoir en extraire les données MySQL ...
pour la date, il semblerait qu'elle soit en jours ... dans ce cas, tu utilises :
SELECT DATE_SUB( '2010-09-05', INTERVAL 40426 DAY ) ; // pour retrouver la date de référence :
=>1899-12-30 // Bizard ^^
SELECT DATE_ADD('1899-12-30, INTERVAL 40426 DAY); // pour retrouver la date qui t'intéresse !..
par contre vérifie !... c'est une hypothèse, mais si elle est fondée, ce sont les paramètres qui sont faux !...
@++
-
Message publié le jeudi 02 septembre 2010 - 12h27 par arthenon.
-
Voici une solution qui m'a permis de résoudre mon problème :
Pour convertir une date excel en timstamp unix :
Le timestamp Unix est spécifié en seconde depuis le 1er janvier 1970 à minuit.
Sous excell le chiiffre correspondant au 01/01/1970 à 24h 00 00 est 25570,00000
Donc sur excel :
(A1 - 25569)*86400
puis utiliser une fonction date() php pour convertir en format date mySql
un site util pour le timestamp :
http://www.timestamp.fr/
-
Message publié le mercredi 29 septembre 2010 - 17h02 par Styleman. ++
Styleman
-
Merci à tous, j'ai procédé comme suit:
convert an "excel" formatted date. Example:
<?php
$excel_date = 40179;
$normal_date = date("m/d/Y", strtotime("01/01/1900 + $excel_date days - 2 days"));
echo($normal_date);
?>
result: "01/01/2010"
liste des forums
liste des discussions
Participer à la discussion
Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.