我试图想出一种方法来使用 PHP 将以下格式的任何日期转换为 unix 时间戳。我想知道是否有人可以帮助我完成这项工作。
这是我尝试过的,但没有奏效:
$expiration_date = '11/22/12';
$timestamp = strtotime(date("m/d/y", $expiration_date));
你不需要这个date()
部分。
只需这样做:
$expires = '11/22/12';
$unix = strtotime($expires);
http://php.net/manual/en/function.strtotime.php
您的示例的问题是您将字符串传递给date()
函数。
该date()
函数需要一个格式字符串,例如'm/d/y'
,然后是一个 int 值的时间。
您正在向它传递一个字符串,因此它不起作用。
date()
: http: //php.net/manual/en/function.date.php
请使用 DateTime 进行这些操作。
$expiration_date = '11/22/12';
list($m, $d, $y) = explode('/', $expiration_date);
$unix = (checkdate((int)$m, (int)$d, (int)$y + 2000)) ? DateTime::createFromFormat('m/d/y', $expiration_date, new DateTimeZone('Europe/Berlin'))->getTimestamp() : false;
echo $unix;
这会给你一个整数。