簡體   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