【问题标题】:Combing numbers but not adding them in PHP梳理数字但不在 PHP 中添加它们
【发布时间】:2011-07-18 22:38:02
【问题描述】:

我正在尝试对用户选择的日期和当前日期进行服务器端验证,这就是我所拥有的:

$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$dateval = $year + $month + $day;

if ($dateval - $today < 0) {
$datepassed = 'no';
}
else {
$datepassed = 'yes';    
}

现在据我所知,除了 $dateval 变量只是将所有数字相加而不是将它们放在一起形成用户选择的日期这一事实之外,一切都完美无缺。例如 20110719 返回 2037。我怎样才能制作一个结合数字而不添加它们的验证器?任何帮助表示赞赏。

【问题讨论】:

    标签: php html validation


    【解决方案1】:

    如果要将它们连接为字符串,请使用点 (.)

    $dateval = $year . $month . $day;
    

    但是,由于您正在处理日期,请考虑使用 mktime 函数

    $dateval = mktime(0, 0, 0, $month, $day, $year)
    

    【讨论】:

      【解决方案2】:

      如果要连接字符串,则应使用连接运算符.:

      $dateval = $year . $month . $day;
      

      否则,PHP 会很聪明,convert your strings to integers,这是 PHP 语言实现的弱类型化的结果。

      【讨论】:

      • 哇。我真是个菜鸟。太多的 JavaScript 对你造成了这种影响。
      【解决方案3】:

      PHP 连接使用. 而不是+。加号是 JavaScript(可能还有其他语言)如何连接字符串。

      $dateval = $year . $month . $day;
      

      【讨论】:

        【解决方案4】:

        只需将+(添加)替换为.(连接)即可。

        $dateval = $year.$month.$day;
        

        【讨论】:

          【解决方案5】:

          您需要将它们添加为字符串点运算符可以做到这一点。

          还要确保 $dateval 的格式与 $today 的格式相似(即,如果需要,包括破折号):

          $dateval = $year.'-'.$month.'-'.$day;
          

          【讨论】:

            【解决方案6】:

            它们必须是字符串并使用.

            【讨论】:

              猜你喜欢
              • 2023-03-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-07-20
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多