У меня проблема при сравнении дат с добавленными часовыми поясами.
Моя ошибка
"Предупреждение: date_format () ожидает, что параметр 1 будет DateTimeInterface,
логическое значение дано в C: \ wamp64 \ www \ oos_ch2 \ dateclass \ index.php в строке 259 "
поэтому после того, как я создал переменную $ interval для сравнения дат, и переменную $ diff
var для форматирования результата разницы из ($ интервал).
Я получаю ошибку формата в "echo date_format ($ diff, 'Y-m-d H: i: s');"
Я не знаю почему.
это старый код? класс даты, который я использовал, взят из книги 2008 года
объектно-ориентированные решения.
Кто-то сказал мне, что дата-класс, вероятно, устарел, но что тогда
современный способ сделать это?
Мой код:
<div class="col-8 omslag">
<!--Grid-->
<div class="input-group">
<label>Timezone one</label>
<!--some time zones no daylight saving -->
<select name="tzone">
<!--timezone names -->
<option value="">Choose timezone</option>
<option value="Pacific/Midway">(GMT-11:00) Midway Island,Samoa</option>
<option value="America/Adak">(GMT-10:00) Hawaii-Aleutian</option>
<option value="Etc/GMT+10">(GMT-10:00) Hawaii</option>
<option value="Pacific/Marquesas">(GMT-09:30) Marquesas Islands</option>
<option value="Pacific/Gambier">(GMT-09:00) Gambier Islands</option>
<option value="America/Anchorage">(GMT-09:00) Alaska</option>
</select>
</div>
<br>
<div class="input-group">
<label>Date two</label>
<input type="datetime-local" name="DateTwo" value="">
</div>
<div class="input-group">
<label>Timezone two</label>
<!--some time zone no daylight saving -->
<select name="tztwo">
<option value="">Choose timezone</option>
<option value="Pacific/Midway">(GMT-11:00) Midway Island, Samoa</option>
<option value="America/Adak">(GMT-10:00) Hawaii-Aleutian</option>
<option value="Etc/GMT+10">(GMT-10:00) Hawaii</option>
<option value="Pacific/Marquesas">(GMT-09:30) Marquesas Islands</option>
<option value="Pacific/Gambier">(GMT-09:00) Gambier Islands</option>
<option value="America/Anchorage">(GMT-09:00) Alaska</option>
</select>
</div>
<div class="input-group">
<input type="submit" name="picker" class="btn" value="Compare">
</div>
</form>
</div>
<div class="box d">
<div class="feed">
<?php
// The date diff form
if (isset($_POST['picker']))
{
// skapa datetime object med createfromformat + date input + timezone
input
$start = new Pos_Date(DateTime::createFromFormat('Y-m-d H:i:s',
$_POST['DateOne'], new DateTimeZone($_POST['tzone'])));
$end = new Pos_Date(DateTime::createFromFormat('Y-m-d H:i:s',
$_POST['DateTwo'], new DateTimeZone($_POST['tztwo'])));
// creat var for diff modulus
$interval = Pos_Date::dateDiff($start, $end);
// convert diff modulus to datetime
$diff = DateTime::createFromFormat('Y-m-d H:i:s', $interval);
//$formatteddate = $diff->format('Y-m-d H:i:s');
echo '<div style="width:240px;height:120px;">';
// print modulus in format (y-m-d)
echo date_format($diff, 'Y-m-d H:i:s');
echo '</div>';
}
?>
</div>
</div>
<!--col close-->
</div>