我怎么转 2012-04-11 12:49:14 成为一个unixtime邮票?
我试过了
$time = mktime("2012-04-11 12:59:14");
和
$time = strtotime("2012-04-11 12:59:14");
修改 基本上在更新时,我的数据库会添加一个如下所示的日期/时间。
2012-04-11 12:49:14
我需要将它变成一个unix时间戳,这样我才能使用我发现的“time ago”功能。
我的测试显示,
数据库输入 - > 2012-04-11 13:22:05转换成 - > 1334143355 - >但是(时间())的当前时间是 - > 1334146956
我不明白他们为什么不匹配?
答案 0 :(得分:4)
声明$time = strtotime("2012-04-11 12:59:14");
工作得很好。
做一个
echo $time;
宣言后。
答案 1 :(得分: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`;
答案 2 :(得分:1)
我希望区别在于处于不同的时区。差异大约是+1小时形成预期结果。您需要更具体地说明您想要的时间 - 例如您从时区或UTC记录/检索时间。
答案 3 :(得分:0)
$time = strtotime("2012-04-11 12:59:14");
是正确的选择。