[RESOLU] Convetir une date pour un format SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Convetir une date pour un format SQL

Re: Convetir une date pour un format SQL

par yoann38 » 14 juil. 2015, 11:16

Oui effectivement ça marche j'avais mal orthographié une variable voilà tout,
Merci encore pour la petite fonction ;)

Re: Convetir une date pour un format SQL

par @rthur » 14 juil. 2015, 00:49

Ça fonctionne correctement chez moi.
Prend mon code à l'identique et met le dans un nouveau script PHP pour voir si ça fonctionne chez toi.

Re: Convetir une date pour un format SQL

par yoann38 » 14 juil. 2015, 00:17

La fonction pour supprimer les accents ne marche pas ....
// Traitement de la date ( conversion de type texte en format sql )
$texte_original="$event[1]";
$jourmois_fr = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre', 'lundi ', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
$jourmois_en = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday');
$timestamp=strtotime(str_replace($jourmois_fr, $jourmois_en, strtolower(suppr_accents($texte_original))));

$date_debut = date("Y-m-d", $timestamp);
echo $date_debut .'<br>';

/****** FONCTIONS ******/
function suppr_accents($string) {
  return str_replace( array('à','á','â','ã','ä', 'ç', 'è','é','ê','ë', 'ì','í','î','ï', 'ñ', 'ò','ó','ô','õ','ö', 'ù','ú','û','ü', 'ý','ÿ', 'À','Á','Â','Ã','Ä', 'Ç', 'È','É','Ê','Ë', 'Ì','Í','Î','Ï', 'Ñ', 'Ò','Ó','Ô','Õ','Ö', 'Ù','Ú','Û','Ü', 'Ý'), array('a','a','a','a','a', 'c', 'e','e','e','e', 'i','i','i','i', 'n', 'o','o','o','o','o', 'u','u','u','u', 'y','y', 'A','A','A','A','A', 'C', 'E','E','E','E', 'I','I','I','I', 'N', 'O','O','O','O','O', 'U','U','U','U', 'Y'), $string);
}
Ou est le problème svp ?

Re: Convetir une date pour un format SQL

par yoann38 » 12 juil. 2015, 11:34

Bonjour à toi, ca l'air de marcher sauf la fonction pour supprimer les accents je ne vois pas pourquoi ....
Si je supprime la fonction de ton code tt marche je récupere bien ma date genre :
2015-07-12

Mais si je remet ton code tel quel :
// Date
$date = @eregi('<tr style="font-weight: bold; background: #FFFFFF; font-size: 12px;">
  <td style="color: #a2141e; width: 150px; padding-left: 5px;">Date : </td>
  <td>(.*)</td>
 </tr>
 <tr style="font-weight: bold; background:  #E8E8E8; font-size: 12px;">
  <td style="color: #a2141e; width: 150px; padding-left: 5px;">Lieu : </td>',$page,$event);
echo "$event[1] <BR>" ;




$texte_original="$event[1]";
$jourmois_fr = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre', 'lundi ', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
$jourmois_en = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday');
$timestamp=strtotime(str_replace($jourmois_fr, $jourmois_en, strtolower(suppr_accents($texte_original))));

print date("Y-m-d", $timestamp);




/****** FONCTIONS ******/
function suppr_accents($string) {
  return str_replace( array('à','á','â','ã','ä', 'ç', 'è','é','ê','ë', 'ì','í','î','ï', 'ñ', 'ò','ó','ô','õ','ö', 'ù','ú','û','ü', 'ý','ÿ', 'À','Á','Â','Ã','Ä', 'Ç', 'È','É','Ê','Ë', 'Ì','Í','Î','Ï', 'Ñ', 'Ò','Ó','Ô','Õ','Ö', 'Ù','Ú','Û','Ü', 'Ý'), array('a','a','a','a','a', 'c', 'e','e','e','e', 'i','i','i','i', 'n', 'o','o','o','o','o', 'u','u','u','u', 'y','y', 'A','A','A','A','A', 'C', 'E','E','E','E', 'I','I','I','I', 'N', 'O','O','O','O','O', 'U','U','U','U', 'Y'), $string);
}
Je me retrouve avec :
Fatal error: Call to undefined function suppr_accents() in C:\wamp\www\lasortie\admin\importerJSON.php on line 79
Call Stack

Re: Convetir une date pour un format SQL

par @rthur » 12 juil. 2015, 11:21

Hello,

Il se trouve que j'ai eu la même problématique récemment.
Pour la résoudre, je traduit de façon rapide les noms des jours et des mois en anglais et ensuite j'utilise la fonction magique strtotime() qui permet de convertir un texte de date en anglais en timestamp exploitable comme on veut avec la fonction date()
http://fr.php.net/strtotime

Voici ce que j'ai fait :
<?php
$texte_original="Dimanche 12 Juillet 2015";
$jourmois_fr = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre', 'lundi ', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
$jourmois_en = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday');
$timestamp=strtotime(str_replace($jourmois_fr, $jourmois_en, strtolower(suppr_accents($texte_original))));

print date("Y-m-d", $timestamp);




/****** FONCTIONS ******/
function suppr_accents($string) {
  return str_replace( array('à','á','â','ã','ä', 'ç', 'è','é','ê','ë', 'ì','í','î','ï', 'ñ', 'ò','ó','ô','õ','ö', 'ù','ú','û','ü', 'ý','ÿ', 'À','Á','Â','Ã','Ä', 'Ç', 'È','É','Ê','Ë', 'Ì','Í','Î','Ï', 'Ñ', 'Ò','Ó','Ô','Õ','Ö', 'Ù','Ú','Û','Ü', 'Ý'), array('a','a','a','a','a', 'c', 'e','e','e','e', 'i','i','i','i', 'n', 'o','o','o','o','o', 'u','u','u','u', 'y','y', 'A','A','A','A','A', 'C', 'E','E','E','E', 'I','I','I','I', 'N', 'O','O','O','O','O', 'U','U','U','U', 'Y'), $string);
}

Convetir une date pour un format SQL

par yoann38 » 12 juil. 2015, 10:57

Salut à tous j'arrive à la fin de mon ptit code.
Et j'ai une question pour vous... Comment convertir la date que je récupère.

La date que je récupère est sous la forme : Dimanche 12 Juillet 2015.
Et je souhaite un format SQL (exemple : 2015-12-04 00:00:00 ) pour pouvoir intégrer le tout en bdd.

Mon code
// Date
$date = @eregi('<tr style="font-weight: bold; background: #FFFFFF; font-size: 12px;">
  <td style="color: #a2141e; width: 150px; padding-left: 5px;">Date : </td>
  <td>(.*)</td>
 </tr>
 <tr style="font-weight: bold; background:  #E8E8E8; font-size: 12px;">
  <td style="color: #a2141e; width: 150px; padding-left: 5px;">Lieu : </td>',$page,$event);
echo "$event[1] <BR>" ;
Et ce que il faut faire un array pour convertir la date si oui comment:
$jour = array('1'=>'Lundi', '2'=>'Mardi', '3'=>'Mercredi', '4'=>'Jeudi', '5'=>'Vendredi', '6'=>'Samedi', '7'=>'Dimanche');
	$mois = array('1'=>'Janvier', '2'=>'Février', '3'=>'Mars', '4'=>'Avril', '5'=>'Mai', '6'=>'Juin', '7'=>'Juillet', '8'=>'Août', '9'=>'Septembre', '10'=>'Octobre', '11'=>'Novembre', '12'=>'Décembre');
Mais après comment procéder ...
Merci à vous

Ps: Je sais que @eregi est obsolète mais on ma demandé de faire ça avec... dsl