27

目前我将时间存储在我的数据库中,如下所示:2010-05-17 19:13:37

但是,我需要比较两次,我觉得如果它是一个 unix 时间戳,例如1274119041. (这两次是不同的)

那么如何将时间戳转换为 unix 时间戳呢?有一个简单的php函数吗?

4

5 回答 5

41

您正在寻找strtotime()

于 2010-05-17T15:59:49.480 回答
15

你想要strtotime

print strtotime('2010-05-17 19:13:37'); // => 1274123617
于 2010-05-17T16:00:01.477 回答
8

获取unix时间戳:

$unixTimestamp = time();

转换为 mysql 日期时间格式:

$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp);

获取一些mysql时间戳:

$mysqlTimestamp = '2013-01-10 12:13:37';

将其转换为 unixtimestamp:

$unixTimestamp = strtotime('2010-05-17 19:13:37');

...将其与一个或一系列时间进行比较,以查看用户是否输入了实际时间:

if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15"))
{...}

Unix 时间戳也更安全。在检查(例如)之前的范围检查之前,您可以执行以下操作来检查 url 传递的变量是否有效:

if(ctype_digit($_GET["UpdateTimestamp"]))
{...}
于 2013-01-10T14:43:20.837 回答
5

如果您使用 MySQL 作为数据库,它可以使用UNIX_TIMESTAMP将日期字段作为 unix 时间戳返回:

SELECT UNIX_TIMESTAMP(my_datetime_field)

您也可以使用strtotime在 PHP 端执行此操作:

strtotime('2010-05-17 19:13:37');
于 2010-05-17T16:04:11.793 回答
3

如果您将时间存储在数据库中,为什么不让数据库也给您它的unix时间戳?见UNIX_TIMESTAMP(date),例如。

SELECT UNIX_TIMESTAMP(date) ...;

数据库还可以进行日期和时间比较和算术运算。

于 2010-05-17T16:04:51.137 回答