【问题标题】:default date in form inputs as first and last day of previous month表单输入中的默认日期为上个月的第一天和最后一天
【发布时间】:2019-01-04 13:31:04
【问题描述】:

我想更改我的输入并将默认日期添加为上个月的第一天和最后一天。

例如 - 当我们有 12 月的某一天时,我想输入日期 01.11 和 30.11。但是当我们有 2 月的某一天时,我想输入日期 01.02 和 28.02(或 29.02)。

我现在的表单代码:

<form action="generate.php" method="post">
     First day: <input type="date" name="start_date" value="2018-12-01">
     Last day: <input type="date" name="end_date" value="2018-12-31">
     <button>Generate it!</button>
</form>

你有什么想法吗? :)

【问题讨论】:

  • 发布你尝试过的东西...

标签: php html forms input


【解决方案1】:

如果您想要上个月的第一天和最后一天,那么这应该适合您:

$curDate=date(Y-m-d);
$month=intval(date(m))-1;
$year=intval(date(Y));
if($month==00){ //case current month januar
    $startDate=($year-1)."-12-01";
    $endDate=($year-1)."-12-31";
}
else{   //differating by month
    $startDate=$year."-".$month."-01";
    if($month==1||$month==3||$month==5||$month==7||$month==8||$month==10)
        $endDate=$year."-".$month."-31";
    else if($month==2)
        $endDate=$year."-2-28";
    else
        $endDate=$year."-".$month."-30";
}

【讨论】:

    【解决方案2】:

    在我看来,这个问题最简单的答案是这段代码:

    $startDate = new DateTime("first day of previous month");
    $endDate = new DateTime("last day of previous month");
    

    【讨论】:

      【解决方案3】:
      <?php
          $minDate = date('01-m-Y');
      
          $currentDate = date('d-m-Y');
          $maxDate = date("Y-m-t", strtotime($currentDate));
      
      
          $calculatedDate = date('d-m-Y',strtotime(date("d-m-Y", strtotime(date("d-m-Y"))). " + 10 weekdays"));
      ?>
      

      希望这会有所帮助:)

      【讨论】:

      • 嗨!我知道我要输入的变量是 $minDate 和 $maxDate,是吗?如果 $maxDate 显示本月的最后一天,则 $minDate 不起作用。但也许是因为我是日期字符串的新手。我将它用作 value="" - 确定吗?
      • @Kacper 我做了预览tehplayground.com/nVdH7y97jkNe6sIq
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多