我通过 URL 将以下值传递给 PHP:
&newtimestamp=2016-12-21%2014:44:44.
我尝试使用 +
而不是 %20
。
在 PHP 中我有这个:
$newtimestamp = $_GET["newtimestamp"];
如果我这样做,它会正确显示时间戳:
echo ($newtimestamp);
但是当尝试时:
echo date_format($newtimestamp,'U');
或
echo date_format($newtimestamp,'Y-m-d H:i:s');
我根本没有得到任何输出。稍后在脚本中,输入用于与 SQL 表进行比较:
$sql = ("SELECT sender,subject,timestamp,threadid,username,notify,msgtype FROM Messages WHERE sender = '$usernametmp' AND subject !='' AND timestamp > '$newtimestamp' ORDER BY timestamp");
我根本没有得到任何结果。
如果我手动将时间戳设置为
,我确实会得到结果$newtimestamp = '1985-10-07 11:42:12';
我想我需要将其定义为日期时间:
$timestamp = new DateTime($newtimestamp);
但随后我收到服务器错误。 顺便说一句,PHP 版本是 5.3。并且需要由我的托管提供商进行更改。如果这就是解决方案,是否有很多在 5.3 上运行的东西将不再在 5.5 或 5.6 上运行(这就是他们提供的)?
我希望有人能看到我在这里做错了什么,提前致谢!
最佳答案
您需要使用 date_create
函数并解码 GET
上的 URL,如下所示:
<?php
$newtimestamp=date_create(urldecode($_GET['newtimestamp']));
echo date_format($newtimestamp,"Y/m/d H:i:s");
关于php - 如何让 PHP 查看日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41420443/