将时间字符串转换为UNIX时间戳

时间:2010-07-27 22:00:25

标签: php datetime date time

如何转换这样的时间字符串:

  

30/7/2010

到UNIX时间戳?

我尝试了strtotime(),但我得到一个空字符串:(

5 个答案:

答案 0 :(得分:10)

PHP> = 5.3:

$var = DateTime::createFromFormat('j/n/Y','30/7/2010')->getTimestamp();

答案 1 :(得分:5)

您使用的是英国日期格式。

快速而肮脏的方法:

$dateValues = explode('/','30/7/2010');
$date = mktime(0,0,0,$dateValues[1],$dateValues[0],$dateValues[2]);

答案 2 :(得分:2)

您可能希望使用http://us3.php.net/manual/en/function.strptime.phpstrptime),因为您的日期与PHP可能期望的格式不同。

答案 3 :(得分:0)

您也可以将其转换为strtotime()可以接受的格式,例如Y / M / D:

$tmp = explode($date_str);
$converted = implode("/", $tmp[2], $tmp[1], $tmp[0]);
$timestamp = strtotime($converted);

答案 4 :(得分:0)

PHP 5.3的答案很棒

DateTime::createFromFormat('j/n/Y','30/7/2010')->getTimestamp();

这是< 5.3.0解决方案

$timestamp = getUKTimestamp('30/7/2010');

function getUKTimestamp($sDate) {
    list($day, $month, $year) = explode('/', $sDate);
    return strtotime("$month/$day/$year");
}