У меня есть файл php, в котором есть раскрывающийся список из 6 вариантов. Первые 4 параметра предварительно установлены 4 часа назад, 8 часов назад, 16 часов назад, 24 часа назад. Два других - выбрать диапазон и выбрать дату. Диапазон выбора создает 2 новых входа, которые являются входами даты html. Выбранная неделя, о которой я спрашиваю, создает ввод недели html. Как только пользователь выбирает все входные данные, он нажимает «Отправить» в форме. Раскрывающийся список - это поле выбора внутри поля формы. Это обновит страницу (файл php).
Первое, что делает php, - это получает входные данные из обновленного URL-адреса и сохраняет их в глобальных переменных. Первые 5 вариантов легко получить даты, но значения недели - год-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 (что бы здесь ни происходило) - это мой вопрос.