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

时间:2010-02-08 15:59:45

标签: php string unix-timestamp

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

9 个答案:

答案 0 :(得分:52)

使用strtotime功能:

示例:

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

答案 1 :(得分: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']
);

之前的版本,这应该有用。

$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')
);

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

$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,或者爆炸,无论你想要解析那个字符串。

答案 2 :(得分:4)

您应该查看strtotime() function

答案 3 :(得分:4)

答案 4 :(得分:2)

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

这里你得到日期字符串,根据所需格式给出格式说明符 - &gt; format()

答案 5 :(得分:1)

简单的爆炸应该可以解决问题:

$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);

答案 6 :(得分:0)

如果你准备好了,请使用DateTime

答案 7 :(得分:0)

试试这个:

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

答案 8 :(得分:0)

如果它是您信任的字符串,意味着您事先已经检查过,那么以下内容也可以。

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