Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 400
1

Время в JS и PHP разное

07.09.2018, 18:32. Показов 733. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Не понятно почему когда я получаю UNIX время в js и php получаются разные значения.

Вообще задача сравнить в 10 минутном промежутке время введенное пользователем от времени сейчас.
HTML5
1
2
3
4
<div class="vac">
    <input type="text" id="date_plan" name="datetime" class="w100 p10 bgc1" placeholder="Запланировать" value="<?php echo $date_now; ?>">
    <input type="hidden" name="datetimenumb" id="valcalendar" >
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
$("#date_plan").on("change", function () {
                var myDate = new Date($(this).val()); 
                var d = new Date($(this).val());
                var loc = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());
                var offDate = new Date().getTimezoneOffset() * 60 * 1000;
                console.log(myDate, myDate.getTime(), loc);
 
                /*
                */
                
                $("#valcalendar").val(myDate.getTime() + offDate); //Пробую прибавить часовой пояс 
});
PHP
1
2
3
4
5
6
7
8
9
10
if(isset($_POST['addpoint'])) {
    $datetimenumb = $_POST['datetimenumb']/1000;
    $datetime = $_POST['datetime'];
    $date_now = date("U");
    $date_future = strtotime("now") + (60 * 10);
    $time_future = time() + (60 * 10);
    if ($date_future  > $datetimenumb)
    echo "D $datetime D2 $datetimenumb D3 $date_now D4 $date_future T $time_future";
    exit();
}
Добавлено через 1 минуту
В консоле
Fri Sep 07 2018 03:50:00 GMT+0500 (Екатеринбург, стандартное время) 1536274200000 1536292200000

В php
D 09.07.2018 03:50 D2 1536292200 D3 1536324593 D4 1536325193 T 1536325193

Добавлено через 3 минуты
К вопросу почему передаю число UNIX time, просто daterangepicker странно работает, вроде выставил 24 часовой формат, но если ставлю 02 или 14 то в консоле получаю одну и ту же дату (myDate).

Добавлено через 7 минут
Вот такая разница выходит: 17990 вроде как примерно

Добавлено через 52 секунды
Да и кстати. Я вот в поясе +5, но время у меня сейчас 18-00, а в консоле выдает 16-00

Добавлено через 16 минут
а другая разница 50000

Добавлено через 1 час 50 минут
Методом тыка
Javascript
1
2
3
4
5
6
7
8
9
10
$("#date_plan").on("change", function () {
                var myDate = new Date($(this).val());
                var d = new Date($(this).val());
                var loc = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());
                var offDate = new Date().getTimezoneOffset() * 60 * 1000;
                console.log(myDate, myDate.getTime(), loc, loc - offDate, offDate);
               
                
                $("#valcalendar").val(loc - offDate + 14400000); //Как то так...
            });
Добавлено через 1 минуту
Актуален вопрос о часовом поясе.
Fri Sep 07 2018 18:10:00 GMT+0500 (Екатеринбург, стандартное время)
Сейчас у меня 20:10, пояс тот же.. Почему? Как сделать нормальное время, для разных поясов?

Добавлено через 10 минут
Так, вообще у меня есть moment.js
Может кто в курсе как там с таймзонами.

Добавлено через 7 минут
Javascript
1
2
3
4
var d = new Date();
var loc = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());
console.log(d, loc, loc/1000 - 18000);
//Fri Sep 07 2018 20:26:25 GMT+0500 (Екатеринбург, стандартное время) 1536351985000 1536333985
Я че то не понимаю, видимо вся проблема в datetimepicker

Вот его настройки
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$("#date_plan").daterangepicker({
                singleDatePicker: true,
                timePicker: true,
                timePickerIncrement: 10,
                timePicker24Hour: true,
                showDropdowns: true,
                autoApply: true,
                locale: {
                    format: "MM.DD.YYYY HH:mm",
                    separator: " - ",
                    applyLabel: "Применить",
                    cancelLabel: "Отмена",
                    fromLabel: "От",
                    toLabel: "До",
                    customRangeLabel: "Свой",
                    daysOfWeek: [
                        "Вс",
                        "Пн",
                        "Вт",
                        "Ср",
                        "Чт",
                        "Пт",
                        "Сб"
                    ],
                    monthNames: [
                        "Январь",
                        "Февраль",
                        "Март",
                        "Апрель",
                        "Май",
                        "Июнь",
                        "Июль",
                        "Август",
                        "Сентябрь",
                        "Октябрь",
                        "Ноябрь",
                        "Декабрь"
                    ],
                    firstDay: 1
                }
            });
Добавлено через 4 минуты
По моему до меня дошло, я изначально получаю время на сервере, его передаю в value поля ввода, затем datetimepicker преобразует это value в нужный формат.

Каким то костылём попахивает. Но хотя бы дошел до причины.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2018, 18:32
Ответы с готовыми решениями:

Компьютер вырубается во время игр каждый раз через разное время
помогите пожалуйста* компьютер Acer aspire m3201. * ** ** * Тип ЦП* ** ** ** ** ** ** ** ** ** **...

Разное время задержки
Здравствуйте. Такая проблема, есть функция, которая должна выполняться каждые N минут. Причем...

Синий экран, в разное время
Почти каждый день компьютер зависает, просто зависает. Помогает только перезагрузка. Зависает...

Разное время выполнения программ
Здравствуйте! Почему скорость выполнения функций отличается в зависимости от того где они...

2
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
07.09.2018, 20:55 2
vino0s, привет!

А формат то почему европейский?
format: "MM.DD.YYYY HH:mm"
0
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 400
08.09.2018, 12:41  [ТС] 3
Цитата Сообщение от amr-now Посмотреть сообщение
А формат то почему европейский?
Что то я даже не думал об этом.

Добавлено через 1 минуту
Снова что то не так происходит, теперь видимо он ( js ) мне всегда выдает вечернее время ( в БД записывается )

Добавлено через 1 час 53 минуты
в общем нашаманил, у меня в поясе всё в норме, остается только в начале когда гружу страницу сделать чтобы правильное время в поле ввода вставлялось.

Добавлено через 42 минуты
Остается только понять как изменить текст input после отправки ajax (value меняется, а текст нет)

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(function(){
            $.ajax({
                url: "tmpl/obrabotka.php",
                type:"post",
                data: {
                    timezone: new Date().getTimezoneOffset()/60*(-1)
                },
                success:function(loader){
                    $('#date_plan').attr('value',loader);
                    $('#date_plan').val(loader);
                    console.log(loader);
                }
            });
});
PHP
1
2
3
4
5
6
7
if (isset($_POST['timezone'])) {
            if ($_POST['timezone'] <> '') {
                $timezone = $_POST['timezone'];
                $datetime_now = date("m.d.Y H:i", strtotime("now") + $timezone * 60 * 60 - 3*60*60);
                $result = $datetime_now;
            }
        }
Добавлено через 39 секунд
Тут минус 3 часа - это часовой пояс сервера ( Москва )

Добавлено через 53 секунды
Вот так узнал что Москва, а как из этого узнать что UTC+3 ???
PHP
1
$tzd = date_default_timezone_get();
0
08.09.2018, 12:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2018, 12:41
Помогаю со студенческими работами здесь

Разное время выполнения методов
Здравствуйте, столкнулся с такой, можно сказать проблемой: Я заметил что в Java методам...

Разное время на сервере и компе
Какая-то муть происходит с датой на сервере, один и тот же код на локалке и сервере показывает...

Зависание компьютера, в разное время
Создавал тему в BSOD, посоветовали обратится в этот раздел, с вопросом о способности моего...

Разное время исполнения программы
&quot;Баловался&quot; с кодом питона и наткнулся на интересный результат: один и тот же код выполняется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru