|
Модераторы: Sardar, Aliance |
|
z006 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
собственно вопрос в чём:как узнать в какой день меняется время на летнее/зимнее,и соответственно в какую сторону меняется?
мне к примеру нужно считать кол-во секунд между 25 января и 31 марта 2020.сейчас из-за перехода на летнее время мне говорит что в этом промежутке 65.95833333333333 дней если использовать спецификатор часового пояса Date.parse(jQuery.datepicker.formatDate('mm/dd/yy', jQuery('#releasedatemod').datepicker('getDate'))+' '+jQuery('#releaseh').val()+':'+jQuery('#releasem').val()+':00 GMT+0200') то для крайнего числа,31 марта,я получу значение 1585605600 секунд,что будет равняться часу ночи,а мне нужно ровно полночь.но по 29 марта включительно спецификатор работает правильно. короче как научить код правильно понимать эти различия? |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Timestamp is time zone agnostic )
А если по русски - timestamp количество секунд прошедшее с 1970-01-01 00:00:00 в таймзоне UTC Функции в браузере зависят от браузера и системы в которой он запущен. Короче со временем лучше работать на сервере. |
|||
|
||||
z006 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
вот такая штука.нужно обсчитывать количество дней и соответственно цену,чтоб показывать пользователю.если время возврата отличается более чем на 2 часа от времени аренды-добавлять сутки.оно всё работает,но я столкнулся с темой перевода времени,и не знаю как обойти теперь.
а про часовой пояс-я ж могу явно указать нужный пояс,только вот как его корректировать с летним/зимним временем? Это сообщение отредактировал(а) z006 - 25.1.2020, 15:22 |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Действуй по "формальной логике" -
у тебя есть $starttime, вычисляешь $bordertime= strtotime('+1 day 2 hour',$starttime). C ним сравниваешь таймстамп возврата. И никакого твоего ума не требуется для расчета перевода времени. Хотя такие вопросы тебе в бухгалтерии нужно выяснять - как они должны считаться на самом деле. Более "справедливым" вариантом было бы при сокращении времени аренды за счет перевода времени - продлевать срок аренды формально на час, а при добавлении - обходится формальным временем возврата. Это будет значить, что нужно еще и разницу таймстампов посчитать, если она меньше 60*60*24 + 2*60*60, то докидывать час... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
z006 |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
бииип.мне надо юзеру показывать цену аренды в зависимости от кол-ва забронированных дней.гонять в фоне запросы к серверу на обчисление при каждой смене дат,а потом результат выводить юзеру как-то...не правильно что-ли.избыточно.
так я за то и говорю,как узнать в какой день происходит смена летнего/зимнего времени,если она не статична из года в год?мне б как-раз узнать что вот в эту дату меняется время-и это решило б все проблемы,дальше просто плюс/минус час делать и всё. |
||||
|
|||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Сорри, Не обратил внимания, что тема про Javascript
В формочке есть дата, час и минута для каждой записи о заборе и возврате?
2010 год, так как у нас с 11 года такой фигней больше не занимаются. Основной смысл - считаем остаток от целого дня, который получается при вычитании таймстампов по стартовому-финишному времени и остаток от дня, который получится, если переводе нет Это сообщение отредактировал(а) ksnk - 26.1.2020, 19:28 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
z006 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
как-то не похоже на мой вариант.у меня время возврата не обязательно будет равно или больше времени забора в суточном измерении.машину могут взять,к примеру.28.01 13:00 а вернуть 30.01 09:45.а могут и 15.02 18:15 вариантов масса. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Там еще одна строка под под этой. Специально для коррекции нетакого времени
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
z006 |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 12.6.2009 Репутация: нет Всего: нет |
c 28.01 по 29,30 и 31 марта соответсвенно видимо самое просто решение это Math.round Это сообщение отредактировал(а) z006 - 28.1.2020, 20:39 |
||||
|
|||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
О чем вы вообще мля ?
ВРЕМЯ В БРАУЗЕ зависит от БРАУЗЕРА (сюрприз). Если укажешь что ты из голивуда, браузер поверит. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
_zorn_, Это калькулятор на сайте. Пользователь, конечно, может открыть сайт и из Голливуда, но точка аренды находится во вполне определенном месте и время взятия-возврата машины указанное в первой форме ввода даты - локальное время этой точки.
Так что автору таки придется прикручивать локаль точки аренды, если ему надо, чтобы сайт работал адекватно по всему миру. Хотя расчитывать на правильно поставленную локаль по всем компьютерам по всему миру - imho самонадеянно... Или отправлять расчетку на сервер, что решит проблемы с переводом часов туда-сюда-обратно при заказе аренды из Австралии... Это сообщение отредактировал(а) ksnk - 1.2.2020, 11:54 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |