Se connecter avec
S'enregistrer | Connectez-vous

Conversion de date

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Voila une "petite" fonction qui te permettera de faire sa (trouvé sur Nexen.net):
  1. <?
  2. function date2timestamp($date , $format){
  3. // Paramètres :
  4. // $date : date formattée comme renvoie date()
  5. // $format : format de la date similire au paramètre de date()
  6. /* exemple : date2timestamp("2001-07-11 16:00:00", "Y-m-d h:i:s");
  7. retourne 994860000
  8. */
  9.  
  10.  
  11. //jour
  12. $d = "([0-3][0-9])";
  13. $j = "([1-3]?[0-9])";
  14. // mois
  15. $m = "(0[0-9]|1[0-2])";
  16. $n = "([0-9]|1[0-2])";
  17. $F =
  18. "(January|February|March|April|May|June|July|August|September|October|November|December)";
  19. $M = "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)";
  20. //annee
  21. $Y = "([0-9]{4, 4})";
  22. $y = "([0-9]{2, 2})";
  23. //heures
  24. $g = "([1]?[0-9])";
  25. $G = "([0-2]?[0-9])";
  26. $h = "([01][0-9])";
  27. $H = "([0-2][0-9])";
  28. //minutes
  29. $i = "([0-5][0-9])";
  30. //secondes
  31. $s = "([0-5][0-9])";
  32.  
  33. $z = "([0-3]?[0-9]?[0-9])";
  34. $I = "[01]" ;
  35.  
  36. $lesmois = array('January'=>1, 'February'=>2, 'March'=>3,
  37. 'April'=>4, 'May'=>5, 'June'=>6,
  38. 'July'=>7, 'August'=>8, 'September'=>9, 'October'=>10,
  39. 'November'=>11, 'December'=>12,
  40. 'Jan'=>1, 'Feb'=>2, 'Mar'=>3, 'Apr'=>4, 'May'=>5, 'Jun'=>6,
  41. 'Jul'=>7, 'Aug'=>8, 'Sep'=>9,
  42. 'Oct'=>10, 'Nov'=>11, 'Dec'=>12);
  43.  
  44. $ok = array('M', 'F', 'I', 'd', 'j', 'm', 'n', 'y', 'Y', 'g', 'G', 'h', 'H',
  45. 'i', 's', 'z');
  46. $nok = array('a', 'A', 'L', 'B', 'D', 'S', 't', 'T', 'w', 'Z');
  47.  
  48. $form_m = preg_replace("/([\(\)\[\]\{\}\?\.\*\?\$\^\/\\\\])/", "\\\\$1",
  49. $format);
  50. $len = strlen($form_m);
  51. $form="";
  52. for($count=0;$count<$len;$count++)
  53. {
  54. $chr = substr($form_m, $count, 1);
  55. if ($chr == '\\' || substr($form, -1, 1) == '\\')
  56. {
  57. $form .= substr($form_m, $count, 2);
  58. $count++;
  59. continue;
  60. }
  61. if (in_array($chr, $ok))
  62. $form .= $$chr;
  63. else
  64. if (in_array($chr, $nok))
  65. $form .= ".+";
  66. else
  67. if ($chr == 'r')
  68. $form .= ", $d $M $Y $H:$i:$s [-+][0-9]{4, 4}";
  69. else
  70. $form .= $chr;
  71. }
  72.  
  73. $format = preg_replace("/(^|[^\\\\])(r)/", "$1, d M Y H:i:s", $format);
  74. $form = preg_replace("/\\\\\\\\([a-zA-Z])/", "$1", $form);
  75. preg_match("/$form/", $date, $reg);
  76.  
  77. $len = strlen($format);
  78. $pos = 1;
  79. $annee = $mois = $jour = 0;
  80.  
  81. for($count=0;$count<$len;$count++)
  82. {
  83. $chr = substr($format, $count, 1);
  84. if ($chr == '\\')
  85. {
  86. $count++;
  87. continue;
  88. }
  89. if ($chr == 'd' || $chr == 'j')
  90. $jour = $reg[$pos++];
  91. if ($chr == 'm' || $chr == 'n')
  92. $mois = $reg[$pos++];
  93. if ($chr == 'M' || $chr == 'F')
  94. $mois = $lesmois[$reg[$pos++]];
  95. if ($chr == 'y'|| $chr == 'Y')
  96. $annee = $reg[$pos++];
  97. if ($chr == 'g' || $chr == 'h'||$chr == 'G' || $chr == 'H')
  98. $heure = $reg[$pos++];
  99. if ($chr == 'i')
  100. $min = $reg[$pos++];
  101. if ($chr == 's' || $chr == 'z')
  102. $sec = $reg[$pos++];
  103. if ($chr == 'I')
  104. $dst = $reg[$pos++];
  105. }
  106.  
  107. if (!isset($heure))
  108. $heure=0;
  109. if (!isset($min))
  110. $min=0;
  111. if (!isset($sec))
  112. $sec=0;
  113. if (!isset($dst))
  114. $dst=-1;
  115. $timestamp = mktime($heure, $min, $sec, $mois, $jour, $annee, $dst);
  116. return $timestamp;
  117. }
  118. // Exemple d'utilisation
  119. $date = "0112-18:05";
  120. echo "Format d'entrée: ".$date."<br>";
  121. $date = date("Y-m-d H:i:s",date2timestamp($date,"md-H:i"));
  122. echo "Format de sortie: ".$date."<br>";
  123. ?>


Evidement comme il n'y a pas d'année dans la date en entrée l'année donnée en sortie sera surement fausse.

merci beaucoup sinon on peut faire comme ca aussi :

$str_date_non_formatee_src = $start_date;
$month = substr($str_date_non_formatee_src, 0, 2);
$jour = substr($str_date_non_formatee_src, 2, 2);
$heure = substr($str_date_non_formatee_src, 5, 2);
$minutes = substr($str_date_non_formatee_src, 8, 2);
$start_date = date("Y-m-d H:i:00", mktime($heure, $minutes, 0 , $month , $jour, date("Y")));

voila @+
Lassé par la pub ? Créez un compte