【问题标题】:HTML/PHP - is it possible to return a HTML date with an empty or null value for PHP if/else statement?HTML/PHP - 是否可以为 PHP if/else 语句返回带有空值或 null 值的 HTML 日期?
【发布时间】:2020-03-22 05:52:43
【问题描述】:

业余程序员,我正在尝试创建一个发票编写器,它使用 HTML 表单来获取 4 个必需的每周日期范围,以及“五周月”的可选第五个日期范围。如您所料,前四个具有“必需”标签,但当不需要第五个时,它返回基本 unix 日期而不是空字符串值,然后运行 ​​price、gst 和 total 函数。我正在尝试将每个范围打印为表格中的一行,就像这样;

  <tr>
          <td>'.$week_five.'</td>
          <td>$ '.$price.'</td>
          <td>$ '.gst($price).'</td>
          <td>$ '.total($price, gst($price)).'</td>
        </tr>'

使用 if/else 语句;

if (isset($_POST['start5']) && isset($_POST['end5'])) {
  $start5 = $_POST['start5'];
  $start5 = date("d/m/Y", strtotime($start5));
  $end5 = $_POST['end5'];
  $end5 = date("d/m/Y", strtotime($end5));
$week_five = '<p id="week_five">'.$start5.' to '.$end5.'</p>';
} else {
  $week_five = "";
}

因此,即使使用 value="",HTML 日期似乎也永远不会返回空值或 null 值。有没有办法做到这一点?

谢谢。

编辑; HTML 表单是


 <input id="end" type="date" name="end5" value="">```

【问题讨论】:

  • 所以 HTML 日期似乎永远不会返回空值或 null 值,我假设您指的是 html5 type="date" 输入?
  • 仅供参考,也可以有一个为期 6 周的月份,如果您的一周从星期一开始,则 2020 年 3 月是一个。
  • 戴尔,没错。我尝试添加一个空字符串作为值标签,但我似乎遗漏了一些东西。
  • 尼克,你是……哦,亲爱的。

标签: php html date


【解决方案1】:

只需使用NULL 分配您的日期变量,不带引号。 https://www.php.net/manual/en/language.types.null.php

$week_five = NULL;

可以重置 POST,请执行以下操作

if(isset($_POST["start5"]) && isset($_POST["end5"]) && $_POST["start5"] === "" && $_POST["end5"] == ""){
  $_POST["start5"] = NULL;
  $_POST["end5"] = NULL;
}

结果:这些结果来自var_dump($_POST),来自 HTML 5 type="date" 提交时的输入字段

var_dump($_POST) => array(3) { ["start5"]=> NULL ["end5"]=> NULL ["submit"]=> string(6) "submit" }

【讨论】:

  • Dale,仍然显示基本的 unix 日期。 isset 有问题吗?似乎即使是默认值仍将是 php 部分的“设置”值。
  • 你说的是帖子吗?
  • 请添加您的步骤以重现您的问题
  • 对不起,澄清一下,php验证后的表格输出是这样的; 15/03/2020 to 20/03/2020 $ 350.00 $ 35.00 $ 385.00 01/01/1970 to 01/01/1970 $ 350.00 $ 35.00 $ 385.00
  • 因此 HTML 表单 = 第 5 周: 加上结束日期下拉列表,两者都留在默认 "dd/mm/YYYY" php if/else 是 if (isset($_POST['start5']) &amp;&amp; isset($_POST['end5'])) { $start5 = $_POST['start5']; $start5 = date("d/m/Y", strtotime($start5)); $end5 = $_POST['end5']; $end5 = date("d/m/Y", strtotime($end5)); $week_five = '&lt;p id="week_five"&gt;'.$start5.' to '.$end5.'&lt;/p&gt;'; } else { $week_five = ""; } 输出是 01/01/1970 到 01/01/1970 并且价格函数运行编辑:不需要,默认
猜你喜欢
  • 2015-07-07
  • 2012-09-19
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 2021-10-25
相关资源
最近更新 更多