Отображение времени Unix в PST показывает дополнительный час - PullRequest
0 голосов
/ 08 марта 2019

Итак, у меня есть базовая настройка формы, и этот запрос выполняется после отправки

$insert = "INSERT INTO data(name, time, time_end) 
VALUES ('".$name."', '".time()."', '".time()."' + 176400) ;";
mysqli_query($conn, $insert);

и я упомянул это в заголовочном файле для отображения времени в PST

date_default_timezone_set('America/Los_Angeles');
$time = time();

и для отображения всей информации из 'data' в PST, у меня есть этот код на странице сравнения

$session = "SELECT * from data";
$session_query = mysqli_query($conn, $session); ?>

<table>

  <tr>
    <th>Name</th>

    <th>Started at</th>
    <th>Ending at</th>
  </tr>

<?php

while($data = mysqli_fetch_assoc($session_query)) { ?>

 <tr>
    <th><?php echo $data['name']; ?></th>



    <th><?php

    $start = $data['time'];
    echo date("F j, Y, g:i a",$start); ?></th>

    <th><?php
    $end = $data['time_end'];
    echo date("F j, Y, g:i a",$end); ?></th>


  </tr>

  <?php

}
?>

</table>
<?php } ?>

Кажется, это работает нормально, пока я не добавлю ниже или 48 часов. Например, если я добавлю +172800 в запросе вставки, он отобразит

March 7, 3:30 am - March 9, 3:30 am

Но всякий раз, когда я пытаюсь добавить более 48 часов (в секундах) в запросе вставки, он добавляет дополнительный час, например, когда я добавляю 72 часа

 March 7, 3: 30 am - March 10, 4:30 am

Так что я не понимаю, почему он отображается 10 марта, 4:30 вместо 3:30 (как в течение дополнительного часа), Может кто-нибудь, пожалуйста, скажите, как это исправить.

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Простое решение - использование strtotime:

date_default_timezone_set('America/Los_Angeles');
$insert = "INSERT INTO data(name, time, time_end) VALUES ('".$name."', '". strtotime('now')."', '". strtotime('+2 days')."') ;";
mysqli_query($conn, $insert);

В вашем коде, похоже, есть уязвимость, связанная с инъекцией sql.Вы должны прочитать это: Как я могу предотвратить внедрение SQL в PHP?

0 голосов
/ 08 марта 2019

Это связано с переходом на летнее время.Вы все еще сталкиваетесь с проблемами, когда дата не близка к 10 или 11 марта?

...