我有一个带有日期列表的MySQL数据库。我希望将所有这些日期(如果它们在今天之后发生)输出到页面中。日期以DATE格式存储在数据库中,格式为Y-m-d
。
我有以下代码(不包括查询等):
$dateToday = date('Y-m-d');
do{
$dateCompare = new DateTime($row['date']);
if ($dateCompare > $dateToday){
echo '<p>'.$dateCompare -> format('Y-m-d').'</p>';
} else {
echo '<p>FALSE</p>';
}
}while ($row = $stmt->fetch(PDO::FETCH_ASSOC));
但这只是输出所有日期,包括我过去设置的日期用于测试目的。我做错了什么?
答案 0 :(得分:3)
$dateToday
是一个字符串。 $dateCompare
是DateTime
个对象。
答案 1 :(得分:1)
你应该使用strtotime()函数。 http://www.w3schools.com/php/func_date_strtotime.asp
答案 2 :(得分:0)
尝试将日期从myssql转换为datetime对象并输出。
$changetime = new DateTime($time, new DateTimeZone('UTC'));
ECHO $changetime->format('m/d/y h:i a');
// list of timezones http://us1.php.net/manual/en/timezones.php
我实际上用它来输出我所有的MYSQL日期时间数据 - 允许我转换为任何时区。请注意,这将假设您的日期时间是UTC - 您应该转换为您的时区。
答案 3 :(得分:0)
$stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach ($stmt as $row) {
$time = strtotime($row['date']);
if ($_SERVER['REQUEST_TIME'] - $time) {
echo '<p>'. date('Y-m-d', $time) . '</p>';
} else {
echo '<p>FALSE</p>';
}
}