-1

我如何将 2012-04-11 12:49:14 变成 unixtime stamp?

我努力了

$time = mktime("2012-04-11 12:59:14");

$time = strtotime("2012-04-11 12:59:14");

编辑 基本上在更新我的数据库时会添加一个看起来像这样的日期/时间。

2012-04-11 12:49:14

我需要将其转换为 unix 时间戳,以便我可以使用我找到的“时间前”函数。

我的测试显示,

数据库输入 -> 2012-04-11 13:22:05 转换为 -> 1334143355 -> 但是当前时间 from(time()) 是 ->1334146956

我不明白为什么他们不匹配?

4

4 回答 4

4

该声明$time = strtotime("2012-04-11 12:59:14");工作得很好。

做一个

echo $time;

在你的声明之后。

于 2012-04-11T12:09:00.130 回答
2

这听起来像是时间偏移不匹配的问题(也许是夏令时)。最好全部在 PHP 中或全部在 MySQL 中完成,以避免时间偏移不匹配。

1334146484 - 1334142872 = 3612s = 1h 12s

您应该在插入或检索数据时使用 UNIX_TIMESTAMP,具体取决于您喜欢存储为 unix 时间戳还是日期时间 -

INSERT INTO `table` (date_field) VALUES (UNIX_TIMESTAMP('2012-04-11 12:59:14'));

SELECT UNIX_TIMESTAMP(date_field) FROM `table`;
于 2012-04-11T12:38:04.457 回答
1

我希望不同之处在于处于不同的时区。与预期结果相比,差异或多或少是 +1 小时。您需要更具体地说明您想要什么时间 - 例如您是从您的时区还是从 UTC 记录/检索时间。

于 2012-04-11T12:37:35.630 回答
0

$time = strtotime("2012-04-11 12:59:14");是正确的选择。

于 2012-04-11T12:42:57.160 回答