PHP 来自 html 周输入的日期字符串

PHP date string from html week input

我有一个 php 文件,其中包含 6 个 select 离子的下拉列表。前 4 个选项分别是 4 小时前、8 小时前、16 小时前、24 小时前的预设选项。另外两个是“select 范围”和“select 日期”。 Select 范围创建 2 个新输入,它们是 html 日期输入。我要问的 select 周创建了 html 周输入。一旦用户 select 完成所有输入,他们就会在表单上点击提交。下拉列表是表单字段内的 select 字段。这将刷新页面(php 文件)。

php 做的第一件事是从更新后的 url 获取输入并将它们存储在全局变量中。前 5 个选项很容易从中获取日期,但周值是“year-W#”。例如本周是“2020-W26”。是否有一个 strtotime 可以轻松地将其转换为 php 中的日期字符串?

<form action="" method ="get">
    <label for="timePeriod">Utilization Hours:</label>
    <div id="timeInputs" style="display: inline">
        <select name="timePeriod"  id="timePeriod" onchange="showDateInputs(value)">
            <option value="4">past 4 Hours</option>
            <option value="8">past 8 Hours</option>
            <option value="16">past 16 Hours</option>
            <option selected value="24" >past 24 Hours</option>
            <option value="1">select range</option>
            <option value="2">select week</option>
        </select>
    
    </div>
    <input type="submit" name="submit" value="Submit">

  <script type="text/javascript">
      document.getElementById('timePeriod').value = "<?php echo $_GET['timePeriod'];?>";
      
      var newDiv = document.createElement('div');
      newDiv.setAttribute("id", "newDiv");
      newDiv.setAttribute("style", "display: inline;");
      if (document.getElementById('timePeriod').value == 1){
            //alert("no way");
            newDiv.innerHTML = "Start Date <input type='date' name='start' id='start' value='<?php echo $_GET['start']; ?>' min='2018-01-02' max='<?php echo date('Y-m-d'); ?>'> End Date <input type='date' name='end' id='end' value='<?php echo $_GET['end']; ?>' min='2018-01-03' max='<?php echo date('Y-m-d'); ?>'>";
            document.getElementById('timeInputs').appendChild(newDiv);
      }
      else if (document.getElementById('timePeriod').value == 2){
            //alert("yes way");
            newDiv.innerHTML = "Select Week <input type='week' name='start' id='start' value='<?php echo $_GET['start']; ?>' ";
            document.getElementById('timeInputs').appendChild(newDiv);
      }
  </script> 
</form>

在文件上方我有这个 php:

if( isset($_GET['submit']) )
{
    //$stDate = htmlentities($_GET['startDate']);
    //$enDate = htmlentities($_GET['endDate']);
    $timePer = htmlentities($_GET['timePeriod']);

我可以将 $timePer 放入一个简单的 strtotime("whatever goes here") 是我的问题。

我想这就是您要找的:

echo date("Y-m-d", strtotime("2020W26"));

使用 date documentation 将日期格式化为您需要的格式。