PHP рассчитывает оставшееся время на будущее - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь реализовать таймер обратного отсчета в мобильном приложении на основе какой-либо серверной функции. У меня есть серверная часть, реализованная на PHP, и я не могу понять, почему она отключена на 6 минут.

Route::post('time', function () {


    $data = [];

    $data['timestamp'] = strtotime('next saturday 18:00:00.000');
    $data['date'] = date('Y-m-d', strtotime('next saturday 18:00:00.000'));
    $data['time'] = date('H:m:s', strtotime('next saturday 18:00:00.000'));


    $data['date_now'] = date('Y-m-d', strtotime('now'));
    $data['time_now'] = date('H:m:s', strtotime('now'));


    $now = new DateTime();
    $now->setTimezone(new DateTimeZone('America/Los_Angeles'));

    $future_date = new DateTime(date('Y-m-d H:m:s', strtotime('next saturday 18:00:00.000')));

    $future_date->setTimezone(new DateTimeZone('America/Los_Angeles'));

    $interval = $future_date->diff($now);

    $data['remaining_days'] = $interval->d;
    $data['remaining_hours'] = $interval->h;
    $data['remaining_minutes'] = $interval->m;
    $data['remaining_seconds'] = $interval->s;


    return $data;
});

Ответ, который я получаю, следующий:

{
    "timestamp": 1530381600,
    "date": "2018-06-30",
    "time": "18:06:00",
    "date_now": "2018-06-24",
    "time_now": "03:06:04",
    "remaining_days": 6,
    "remaining_hours": 14,
    "remaining_minutes": 0,
    "remaining_seconds": 56
}

Я пытался, как и все другие способы указать время в strtotime, но он продолжает давать мне время "18:06:00" на самом деле, я хочу "18:00:00".

Независимо от проблемы, о которой я слышал, я действительно хочу найти оставшееся время до следующей субботы в 6 часов вечера по серверному времени. Вот почему я делаю $future-$now. Но прошло около 7 часов с того момента, как я получил от этого .

Может кто-нибудь пролить мне свет здесь?

...