【发布时间】:2019-04-06 08:35:47
【问题描述】:
我在比较使用 php 中的新 dateTime () 创建的日期和取自 Mysql 表的 DATETIME 字段的日期之间的日期时遇到问题。
使用以下代码,在 MySQL 表的 DATETIME 字段中保存日期:
$now = new DateTime();
$update = $mysqli->query('INSERT INTO bonus (idplayer,lastlogin) VALUES ("'.$_GET["idplayer"].'","'.$now.'")');
然后我想从表格中检索日期并将其与使用 php 代码创建的日期进行比较:
$resetTime = new DateTime();
date_time_set($resetTime, 12, 00, 00);
$lastLogin = $mysqli->query('SELECT lastlogin FROM bonus WHERE idplayer = "'.$_GET["idgiocatore"].'"');
if ($resetTime < $lastLogin) {
echo "OK!<br>";
}
使用此代码我无法比较日期,因为我收到错误消息(我什至无法回显从表中检索到的日期)。 谁能告诉我哪里错了,我该如何解决这个问题?
【问题讨论】:
-
阅读 PHP 手册会告诉你
DateTime是一个类,而不是一个字符串。请参阅:php.net/manual/en/class.datetime.php 你想要的更像是 PHP 中的date('Y-m-d H:i:s')。这会生成一个可用于 MySQL 查询的字符串。见:php.net/manual/en/function.date.php 或使用datetime->format(),见:php.net/manual/en/datetime.format.php -
谢谢!我设法解决了一切!
-
$_GET["idgiocatore"] = '" OR 1 ORDER BY lastlogin DESC LIMIT 1 --'- 这样它按最大日期排序,然后只返回一行。$lastLogin也不是你想的那样。