Московское время..
Помогите с кодом. Здесь всё подробно описано 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, время: 15:14. |