2010-02-02 4 views
1

HI, J'ai un problème pour analyser une date en php en utilisant strptime() car mon système exécute Windows. J'ai aussi essayé d'analyser la date en utilisant strtotime() mais pas de chance non plus parce que j'utilise le format de date euro.PHP analysant une date en utilisant strptime() ou strtotime()

C'est le format de date que je utilise 30/11/2009 11:00 et je dois obtenir l'horodatage de celui-ci.

Des idées comment puis-je y parvenir ??

Répondre

2
$us = preg_replace('#^(\d+)/(\d+)/(\d+)\s([\d:]+)\s([a-zA-z]{0,2})$#','$3-$2-$1 $4 $5', $date); 
$timestamp = strtotime($date); 
2

Si vous utilisez régulièrement cette date, découpez simplement la date en plusieurs parties de date en utilisant la sous-chaîne.

$dayofmonth = substr($date,1,2) 
$month = substr($date,4,2); 
$year = substr($date,7,4); 

etc, etc.

+0

Gardez à l'esprit que 'substr' est égal à zéro en fonction. – Matthew

0

DonT utiliser strtotime pour ce format ... à partir du php doc:

La fonction attend à donner une chaîne contenant une date Anglais US format et tentera d'analyser ce format en un horodatage Unix (le nombre de secondes depuis le 1er janvier 1970 00:00:00 UTC), par rapport à l'horodatage donné maintenant, ou le heure actuelle si n'est pas fourni.

utilisez l'une des méthodes fournies dans les autres réponses.

0

Vous pouvez utiliser cette fonction:

  function convert_datetime($str) 
      { 

      list($date, $time) = explode(' ', $str); 
      list($day, $month, $year) = explode('/', $date); 
      list($hour, $minute) = explode(':', $time); 

      $timestamp = mktime($hour, $minute, 00, $month, $day, $year); 

      return $timestamp; 
      }