将字符串转换为PHP中的日期

str*_*ade 13 php string unix-timestamp

如何将此字符串转换05/Feb/2010:14:00:01为unixtime?

Sar*_*raz 52

使用strtotime功能:

例:

 $date = "25 december 2009";
 $my_date = date('m/d/y', strtotime($date));
 echo $my_date;
Run Code Online (Sandbox Code Playgroud)


eri*_*sco 20

对于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']
);
Run Code Online (Sandbox Code Playgroud)

以前的版本,这应该工作.

$date = '05/Feb/2010:14:00:01';
$format = '@^(?P<day>\d{2})/(?P<month>[A-Z][a-z]{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')
);
Run Code Online (Sandbox Code Playgroud)

你可能不喜欢正则表达式.当然,你可以对它进行注释,但不是每个人都喜欢它.所以,这是另一种选择.

$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];
Run Code Online (Sandbox Code Playgroud)

或者substr,或者爆炸,无论你想要解析那个字符串.