1

我试图想出一种方法来使用 PHP 将以下格式的任何日期转换为 unix 时间戳。我想知道是否有人可以帮助我完成这项工作。

这是我尝试过的,但没有奏效:

   $expiration_date = '11/22/12';

   $timestamp = strtotime(date("m/d/y", $expiration_date));     
4

2 回答 2

6

你不需要这个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

于 2012-11-19T22:43:51.217 回答
2

请使用 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;

这会给你一个整数。

于 2012-11-19T23:08:49.193 回答