好的,所以我正在制作一款基于文字的在线游戏,现在我已经完成了一段时间的完成:
function....
// I can't get this script to execute when I know the time has passed.
$now = new DateTime("now", new DateTimeZone('UTC'));
$row_date = new DateTime($row["due_date"], new DateTimeZone('UTC'));
if ($row_date->format('Y-m-d H:i:s') <= $now->format('Y-m-d H:i:s'))
{
mysql_query(".....")VALUES ("....")or die(mysql_error());
mysql_query("DELETE FROM ......")or die(mysql_error());
}
else
{
// The time has not come yet.
}
此代码将使用jQuery的setInterval每10秒执行一次。
答案 0 :(得分:11)
DateTime
可比较
if ($row_date <= new DateTime) { /* Do something */ }
答案 1 :(得分:1)
将其转换为unix时间戳。适合您的任何需求。 您可以使用时间戳轻松地对时间进行排序,并找出最先出现的事件。
$ts=strtotime($date);
答案 2 :(得分:1)
您可以避免转换为DateTime类并使用seconds since Epoch
值进行任何日期比较。你的代码是这样的:
date_default_timezone_set('UTC');
$row_date = strtotime($row["due_date"]);
if ($row_date <= time()) { // The time has come
mysql_query(".....") VALUES ("....") or die(mysql_error());
mysql_query("DELETE FROM ......") or die(mysql_error());
}
else {
// The time has not come yet.
}