首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:在一个日期中在一个月后添加一个空格

PHP:在一个日期中在一个月后添加一个空格
EN

Stack Overflow用户
提问于 2022-05-18 08:00:34
回答 1查看 51关注 0票数 -1

我有一个表格,它会在一段时间内循环(同时)所有的月份。值是以数字(m)表示的月份,文本是以单词(F)表示的月份。所有的显示都是正确的,但是当我发布表单时,我会在两个月的数字之后得到一个空格。我已经通过一个没有尾随空格的月数字显示的回显来检查表单,所以这肯定是在发布之后。我尝试用"substr“和"rtrim”移除拖尾空间--也不移除拖尾空间。

表格代码:

代码语言:javascript
复制
<div class="col-4">
  <label for="phaseMonth" class="form-label ps-2 fw-bold">Draw-off Month</label>
    <?php
      $month = strtotime('2022-01-01');
      $end = strtotime('2023-01-01');
      $limonth = date('F', strtotime($row_lqe['drawoffDate']));
    ?>
  <select name="phaseMonth" title="Select a Date" class="form-select border border-secondary" required>
  <option value="">Select a Month</option>
    <?php while ($month < $end) { ?>
      <option value="<?php echo date('m', $month), PHP_EOL; ?>"
        <?php if (!(strcmp(date('F', $month), $limonth))) {echo "selected=\"selected\"";} ?>>
        <?php echo date('F', $month), PHP_EOL; ?>
      </option>
      <?php $month = strtotime("+1 month", $month); ?>
    <?php } ?>
  </select>
</div>

邮编:

代码语言:javascript
复制
$phaseMonth = $_POST['phaseMonth'];
        if (empty($phaseMonth)) {
            $newphaseMonth = "01";
        } else {
            $newphaseMonth = substr($phaseMonth, 0, -1);
        }
$phaseYear = $_POST['phaseYear'];
        if (empty($phaseYear)) {
            $phaseYear = "2022";
        }
        $drawoffDate = $phaseYear . "-" . $newphaseMonth . "-01";

echo "$phaseMonth:$newphaseMonth:$phaseYear:$drawoffDate"; // to show trailing space

回波输出:

代码语言:javascript
复制
11 :11 :2023:2023-11 -01
EN

回答 1

Stack Overflow用户

发布于 2022-05-18 08:19:13

您似乎忽略了过度使用<?php?>标记的问题;请参阅本例,以及查看和使用它的清洁程度:

代码语言:javascript
复制
<div class="col-4">
  <label for="phaseMonth" class="form-label ps-2 fw-bold">Draw-off Month</label>
    <?php
      $month = strtotime('2022-01-01');
      $end = strtotime('2023-01-01');
      $limonth = date('F', strtotime($row_lqe['drawoffDate']));
      print "<select name='phaseMonth' title='Select a Date' 
             class='form-select border border-secondary' required>
             <option value=''>Select a Month</option>\n";
      while ($month < $end) { 
         print "<option value='".date('m', $month)."'";
         if (strcmp(date('F', $month), $limonth) === 0) {
            echo "selected='selected'";
         } 
         print ">".date('F', $month)."</option>\n";
         $month = strtotime("+1 month", $month);
      } 
   ?>
  </select>
</div>

用单引号和双引号代替转义引号,而不是转义引号。?> <?php

  • This是一个简单的例子,可以进一步减少,但是减少了readability.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72285301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档