日期时间设置不同日期的PHP setDate函数
我正在学习使用PHP DateTime类,我遇到了方便的“setDate”方法。为了比较两个日期,我尝试了以下操作:日期时间设置不同日期的PHP setDate函数,php,datetime,Php,Datetime,我正在学习使用PHP DateTime类,我遇到了方便的“setDate”方法。为了比较两个日期,我尝试了以下操作: $date = new DateTime(); $newDate = clone $date; $newDate->setDate(2017, 08, 29); if($date > $newDate){ echo 'yes'; } else{ echo "no"; } 根据当前日期,应返回“否”,但返回“是”。所以我做了一个var_转储($ne
$date = new DateTime();
$newDate = clone $date;
$newDate->setDate(2017, 08, 29);
if($date > $newDate){
echo 'yes';
} else{
echo "no";
}
根据当前日期,应返回“否”,但返回“是”。所以我做了一个var_转储($newDate)代码>并返回:
object(DateTime)[2]
public 'date' => string '2016-12-29 00:31:02.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'Europe/Zurich' (length=13)
它返回的日期为2016-12-29,这不是我打算设定的日期
我现在所做的肯定有什么地方出了问题。请帮我找出我的错误。谢谢而不是08
,它需要是8
,如下所示:-
<?php
$date = new DateTime();
$newDate = clone $date;
$newDate->setDate(2017, 8, 29);
if($date > $newDate){
echo 'yes';
} else{
echo "no";
}
<?php
function is_octal($x) {
return decoct(octdec($x)) == $x;
}
echo is_octal(08); // true
输出:-(上面的代码将在php中工作不需要克隆-只需根据需要实例化新的DateTime对象。示例:
尝试在setDate函数的第二个参数中使用8而不是08 PHP中前缀为0
的数字被视为八进制,因此08
是八进制8,这是一个无效的八进制数,所以被视为0。我很想知道你什么时候会在你的网站上保留该URL——如果你决定不再提供该URL,或者你什么时候决定不再提供该URL“如果您不再是该域的注册人,它将触发404,反过来您的问题将被标记为不存在的URL,或者将来由其他人编辑。使用的网站通常是一个好的做法/想法。@Fred ii-我同意您的看法。提供某个个人域的URL不是一个好主意。使用完整的f。”ree在线平台,如eval.in
,fiddle.net
等,是个不错的主意。谢谢你的评论。发布的URL就是代码片段中显示的确切资源,所以这只是一件方便的事情(它显示了问题的作者,我实际测试了代码)。任何人都可以从堆栈中复制代码片段,并获得与URL相同的结果。我通常会将这些示例保留数月或数年。