Php 为什么这个日期时间的使用不能正确地解释;今天;?

Php 为什么这个日期时间的使用不能正确地解释;今天;?,php,datetime,Php,Datetime,为什么DateTime的使用不能正确地确定“classtime是今天”?2017-11-19的结果是“classtime已经过去了”。我需要从php.ini中引用时区吗 $class = new DateTime('2017-11-19'); $today = new DateTime('NOW'); if ($class > $today) { echo 'classtime is in the future', PHP_EOL; } elseif ($class <

为什么DateTime的使用不能正确地确定“classtime是今天”?2017-11-19的结果是“classtime已经过去了”。我需要从php.ini中引用时区吗

$class = new DateTime('2017-11-19'); 
$today = new DateTime('NOW'); 
if ($class > $today) {
    echo 'classtime is in the future', PHP_EOL;
} elseif ($class < $today) {
    echo 'classtime is in the past', PHP_EOL;
} else {
    echo 'classtime is today', PHP_EOL;
}
$class=新日期时间('2017-11-19');
$today=新日期时间(“现在”);
如果($class>$today){
echo“课堂时间在未来”,PHP_EOL;
}elseif($class<$today){
echo“classtime已经过去”,PHP_EOL;
}否则{
echo“今天是上课时间”,PHP_EOL;
}
与此相同的结果:

$class = new DateTime('2017-11-18'); 
$today = new DateTime('NOW'); 

$class->format('Y-m-d') < $today->format('Y-m-d');

if ($class > $today) {
    echo 'classtime is in the future', PHP_EOL;
} elseif ($class < $today) {
    echo 'classtime is in the past', PHP_EOL;
} else {
    echo 'classtime is today', PHP_EOL;
}
$class=新日期时间('2017-11-18');
$today=新日期时间(“现在”);
$class->format('Y-m-d')<$today->format('Y-m-d');
如果($class>$today){
echo“课堂时间在未来”,PHP_EOL;
}elseif($class<$today){
echo“classtime已经过去”,PHP_EOL;
}否则{
echo“今天是上课时间”,PHP_EOL;
}

日期时间也使用时间。所以,
$class
2017-11-19 00:00:00
$today
是稍晚一点,你当地的时间是一小时一小时

有关更多信息,请参见示例区域中的

可能您必须这样检查:

$class->format('Y-m-d') < $today->format('Y-m-d');
$class->format('Y-m-d')<$today->format('Y-m-d');
像这样使用它:

$class = new DateTime('2017-11-19');
$today = new DateTime('NOW');

$class_date = $class->format('Y-m-d');
$today_date = $today->format('Y-m-d');

if ($class_date > $today_date) {
    echo 'classtime is in the future', PHP_EOL;
} elseif ($class_date < $today_date) {
    echo 'classtime is in the past', PHP_EOL;
} else {
    echo 'classtime is today', PHP_EOL;
}
$class=新日期时间('2017-11-19');
$today=新日期时间(“现在”);
$class_date=$class->format('Y-m-d');
$today_date=$today->格式('Y-m-d');
如果($class\u date>$today\u date){
echo“课堂时间在未来”,PHP_EOL;
}elseif($class_date<$today_date){
echo“classtime已经过去”,PHP_EOL;
}否则{
echo“今天是上课时间”,PHP_EOL;
}

PHP的时区设置是什么?我需要它来使用服务器的PHP.ini中设置的时区。这个数据库是否有可能相关?如果是这样的话,可能有一种更简单的方法。我确实需要从数据库中提取$class的值,但我还没有说到点子上。好的,但在我的示例中如何使用它呢?我添加了一个示例谢谢,这很有效。这是否也尊重服务器的php.ini中设置的时区?文档说:“如果省略$timezone,将使用当前时区。”因此,如果不指定一个时区,则使用两个时区