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 将日期格式化为您需要的格式。
我有一个 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 将日期格式化为您需要的格式。