【问题标题】:Warning: A non-numeric value encountered in php time script警告:在 php 时间脚本中遇到非数字值
【发布时间】:2020-02-11 14:25:12
【问题描述】:

我正在生成下拉列表以显示 15 分钟的持续时间,直到 6 小时它会生成 15 分钟、30 分钟、45 分钟,但我遇到错误非数值,所以我点击下面的链接,但它没有解决我的问题问题

链接参考:

date() method, "A non well formed numeric value encountered" does not want to format a date passed in $_POST

A non well formed numeric value encountered - Error in PHP

<?php 

echo "<select>";

for($i = 0; $i <= 6; $i++){
    for ($j = 0; $j <= 45; $j +=15){
        if ($i === 0 && $j === 0){
            //do nothing
        }
        else{
            //get string for hours
            switch($i){
                case 0:
                    $hours = "";
                    break;
                case 1:
                    $hours = "1 hour";
                    break;
                default:
                    $hours = $i . " hours";
                    break;
            }

            //get string for minutes
            switch($j){
                case 0:
                    $minutes = "";
                    break;
                default:
                    $minutes = $j . " minutes";
                    break;
            }

            $value = ($hours * 60) + $minutes;



            //output
            echo "<option value='" . $value . "'>" . $hours . " " . $minutes . "</option>";
        }
    }
}

echo "</select>";

?>

【问题讨论】:

  • 您正在设置字符串,然后尝试进行乘法运算。例如$hours = "1 hour"; -- 不能乘以 60。
  • @Jeremy Harris 我应该做些什么改变
  • 不要尝试将“1 小时”乘以 60。将您的代码更改为仅处理循环中的数字,然后在计算后担心如何显示它。

标签: php datetime


【解决方案1】:

这是我在@Jeremy Harris 建议的代码中犯的错误

Intval() 解决了我的问题

$value = (intval($hours) * 60) + intval($minutes);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2020-01-04
    相关资源
    最近更新 更多