繁体   English   中英

DateTime-> Format函数意外地带有%符号

[英]DateTime->Format functions unexpectedly with % symbol

我目前正在审核代码库,以转移到PHP 7安装。 我们所看到的问题之一是DateTime-> format(),其中参数字符串以带百分号的形式传入,该百分号前包含一个值,在这种情况下,任何比较运算符都将其视为字符串,而不是数字值

$dto = new \DateTime('now');
if($dto->format("%y") == 20) {

PHP警告:在第225行的/var/www/html/application/models/User.php中遇到的非数字值

PHP 5和7之间在format()语句中使用百分号是否有所改变? 还是我在这里想念什么? 它只是一个警告语句,但我宁愿使错误日志中所有可能占用空间的内容都清除掉。

您正在检查if语句中的整数,这导致我们假设不需要格式中的%符号。
虽然不禁止在格式字符串中包含诸如%文字,但是它没有任何语义值,但它被视为普通的百分比字符。 这意味着您的format()将是例如'%19' ,它是一个非数字字符串,不能与整数进行比较。 您的if语句将始终失败。

如果您期望的结果是数字字符串'19' ,那么您只需从格式字符串中删除%

$dto = new \DateTime('now');
if($dto->format("y") == 20) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM