Преобразование String В настоящее время в PHP

Как я могу преобразовать эту строку 05/Feb/2010:14:00:01 в unixtime?

Для PHP 5.3 это должно работать. Возможно, вам придется возиться с передачей $ dateInfo ['is_dst'], так или иначе, для меня не работало.

 $date = '05/Feb/2010:14:00:01'; $dateInfo = date_parse_from_format('d/M/Y:H:i:s', $date); $unixTimestamp = mktime( $dateInfo['hour'], $dateInfo['minute'], $dateInfo['second'], $dateInfo['month'], $dateInfo['day'], $dateInfo['year'], $dateInfo['is_dst'] ); 

В предыдущих версиях это должно работать.

 $date = '05/Feb/2010:14:00:01'; $format = '@^(?P<day>\d{2})/(?P<month>[AZ][az]{2})/(?P<year>\d{4}):(?P<hour>\d{2}):(?P<minute>\d{2}):(?P<second>\d{2})$@'; preg_match($format, $date, $dateInfo); $unixTimestamp = mktime( $dateInfo['hour'], $dateInfo['minute'], $dateInfo['second'], date('n', strtotime($dateInfo['month'])), $dateInfo['day'], $dateInfo['year'], date('I') ); 

Возможно, вам не нравятся регулярные выражения. Конечно, вы могли бы комментировать его, но не всем это нравится. Таким образом, это альтернатива.

 $day = $date[0].$date[1]; $month = date('n', strtotime($date[3].$date[4].$date[5])); $year = $date[7].$date[8].$date[9].$date[10]; $hour = $date[12].$date[13]; $minute = $date[15].$date[16]; $second = $date[18].$date[19]; 

Или substr или explode, независимо от того, что вы хотите разобрать эту строку.

Используйте функцию strtotime :

Пример:

  $date = "25 december 2009"; $my_date = date('m/d/y', strtotime($date)); echo $my_date; 

Вы должны заглянуть в функцию strtotime () .

 $d="05/Feb/2010:14:00:01"; $dr= date_create_from_format('d/M/Y:H:i:s', $d); echo $dr->format('Ymd H:i:s'); 

здесь вы получаете строку даты, указываете спецификатор формата в -> format () в соответствии с необходимым форматом

Простое взлома должно сделать трюк:

 $monthNamesToInt = array('Jan'=>1,'Feb'=>2, 'Mar'=>3 /*, [...]*/ ); $datetime = '05/Feb/2010:14:00:01'; list($date,$hour,$minute,$second) = explode(':',$datetime); list($day,$month,$year) = explode('/',$date); $unixtime = mktime((int)$hour, (int)$minute, (int)$second, $monthNamesToInt[$month], (int)$day, (int)$year); 

Если вы за это используете, используйте класс DateTime

Попробуй это:

 $new_date=date('dm-Y', strtotime($date)); 

Если это строка, которой вы доверяете, означает, что вы проверили ее перед рукой, тогда также будет работать следующее.

 $date = new DateTime('2015-03-27');