php устаревшие методы datetime - PullRequest
0 голосов
/ 06 сентября 2018

У меня проблема при сравнении дат с добавленными часовыми поясами.

Моя ошибка "Предупреждение: 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>
...