Московское время..
Помогите с кодом. Здесь всё подробно описано http://forum.wen.ru/?p=3&f=10&t=76259&w=htm
ЗЫ: Я лишь недавно сурьёзно заинтересовался JavaScript, поэтому могу не понимать многих, на Ваш взгляд, банальных вещей. |
Цитата:
|
Эти я уже более-менее изучил.. get/set, ничего сложного:) Вопрос в том, как посчитать, а точнее занести в массив числовые значения? Кавычки, как я убедился, удалять - не вариант..
|
Хм.. Перевести в милисекунды Date.pars'ом, посчитать, перевести обратно?
|
Что-то я бред несу.. Не для того сей парс создан.. Попробую шоль с set'ами побаловаться..
|
Ну вот посмотрите, что получилось..
function last_sat (a) { var date = new Date(new Date().getYear,a,31) var day = 30 - date.getDay() date.setMonth(a,day) return date } var now = new Date() var gmt = (-( now.getTimezoneOffset()) ) / 60 var a = last_sat(2) var b = last_sat(9) var h = now.getHours() if (h<gmt-4) { var h = 24 + h } if (now>a && now<b) { var h = h - (gmt-4) } else { var h = h - (gmt-3) } var m = now.getMinutes() document.write ('Московское время: '+h+' часов(a) '+m+' минут(ы)') Всё работает как задумано,кроме этой части кода var h = now.getHours() if (h<gmt-4) { var h = 24 + h } if (now>a && now<b) { var h = h - (gmt-4) } else { var h = h - (gmt-3) } Меняя произвольно дату на локалхосте убедился, что работает только else.. Почему? И как изменить эту часть, чтобы всё исполнялось, как нужно (т.е. правильно исполнялось условие с выбором действия с переменной h и увеличение h, если нужно).. Уже часа два мучаюсь.. |
На форуме есть форматирование. Без него код смотрится убого и трудноусвояемым.
|
Убого гг) Плох тот программист, который не может в коде без подсветки разобратся.. Ну вот оно
function last_sat (a) { var date = new Date(new Date().getYear,a,31) var day = 30 - date.getDay() date.setMonth(a,day) return date } var now = new Date() var gmt = (-( now.getTimezoneOffset()) ) / 60 var a = last_sat(2) var b = last_sat(9) *!* var h = now.getHours() if (h<gmt-4) { var h = 24 + h } if (now>a && now<b) { var h = h - (gmt-4) } else { var h = h - (gmt-3) } */!* var m = now.getMinutes() document.write ('Московское время: '+h+' часов(a) '+m+' минут(ы)') |
Цитата:
не пишите глупостей! и, кстати реально плох тот программист, который совершенно не пользуется табуляцией. также как и тот, который не может отладить свою программу такого маленького объема. Это я к тому, что отлаживать за вас никто не будет это элементарнейшее действие(для данного примера) |
Цитата:
|
Ну я даже не знаю.. Привык без подсветки.. Ну дык по коду ничего дельного не скажете?
|
Гвоздь, и, пожалуй, не забывай, что я ещё учусь..
|
заявления о ненужности подсветки кода хорошему программисту, и о привычке работать без подсветки не сильно соотносятся с тем, что ты новичек в программировании.
в любом случае если учишься, то учись. ты бы уже сам давно отладил |
i-want,
функция last_sat (a) неверно устанавливается год function last_sat (a) { var date = new Date(new Date().getFullYear(),a,31) var day = 31 - date.getDay() date.setMonth(a,day) return date } или если учитывать и час перевода часов то можно такой вариант: <script language="JavaScript" type="text/javascript"> function time_set(e, f) { var c = new Date; c.setMonth(e, 31); c.setMonth(e, 31 - c.getDay()); c.setHours(f, 0, 0, 0); return c } var d = new Date, a = time_set(2, 2), b = time_set(9, 3); d.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()); d.setHours(d.getUTCHours() + 3); d > a && d < b && d.setHours(d.getHours() + 1); var h = d.getHours(), m = d.getMinutes(); document.write ('Московское время: '+h+' часов(a) '+m+' минут(ы)'); </script> |
Рони, ход твоей мысли ясен.. Но возникает один вопрос.. Разве это
d > a && d < b && d.setHours(d.getHours() + 1); не нуждается в if'е? То есть if (d > a && d < b) { d.setHours(d.getHours() + 1) } Или же можно опускать условные конструкции? |
В целом, спасибо, помог:)
|
Часовой пояс GMT +3, время: 22:49. |