在我的SQL数据库中,我有一个时间戳列,其值如下,表示上次编辑的日期:
2015-01-17 08:55:34.000000
我想将Date与当前日期进行比较,以及何时是我想要回显Today
的当天,否则我想显示上次修改的日期:
$timefromdb = '2015-01-17 08:55:34.000000'
$edit = strtotime($timefromdb);
if($edit > $_SERVER['REQUEST_TIME']){echo "Today";}
else{
echo strftime("on %A, the %d %B %Y", $edit);
}
echo " at ".date('h:i',$edit)
始终显示01/01/1970。 strtotime
必定存在问题。我做了一些研究,似乎我的时间戳格式不是有效的:http://php.net/manual/en/datetime.formats.php
围绕网络有很多关于转换时间戳的问题,但我找不到合适的问题:我也对所有转换日期内容的函数感到困惑。
有人可以告诉我如何获得有效的时间戳,以便在strftime中使用它并将其与REQUEST_TIME
进行比较。
提前致谢!
更新:始终如一:问题出在PC前面。我声明了变量,但从未将时间戳分配给它:)
答案 0 :(得分:1)
从日期中删除.000000
,因为格式为strtotime()
的日期无法使用。有几种方法可以做到这一点。一个简单的substr就是其中之一。
$timefromdb = substr('2015-01-17 08:55:34.000000', 0, -7);
答案 1 :(得分:0)
我不完全理解你,但是 尝试 1.比较gettype($ edit)和gettype($ _ SERVER ['REQUEST_TIME']) 2.不确定$ timefromdb会比$ _SERVER ['REQUEST_TIME']更多,因为当用户编辑数据时恕我直言,它的动作时间将少于当前时间。