В конце концов, вы все равно будете много манипулировать строками,
так почему бы просто не манипулировать самой строкой даты?
Браузеры по-разному форматируют строку даты.
Netscape ::: Пт, 11 мая 2012 20:15:49 GMT-0600 (горное дневное время)
IE ::: Пт 11 мая 20:17:33 MDT 2012
так что вам придется проверить это.
var D = new Date().toString().split(' ')[(document.all)?3:4];
Это установит D равным 24-часовой строке ЧЧ: ММ: СС. Разделить это на
двоеточия, и первым элементом будут часы.
var H = new Date().toString().split(' ')[(document.all)?3:4].split(':')[0];
Вы можете конвертировать 24-часовые часы в 12-часовые, но это не
на самом деле было упомянуто здесь. Наверное, потому что это довольно сумасшедший
что вы на самом деле делаете математически, когда вы переводите часы
из часов. На самом деле, то, что вы делаете, добавляет 23, модифицируя это
на 12 и добавление 1
twelveHour = ((twentyfourHour+23)%12)+1;
Так, например, вы можете получить все время из строки даты, мод
часы, и отображать все это с новыми часами.
var T = new Date().toString().split(' ')[(document.all)?3:4].split(':');
T[0] = (((T[0])+23)%12)+1;
alert(T.join(':'));
С помощью некоторого умного регулярного выражения вы, вероятно, можете отключить часы в формате ЧЧ: ММ: СС.
часть строки даты, и мод их все в одной строке. Это было бы
смешная строка, потому что обратная ссылка $ 1 не может быть использована в
расчеты без помещения функции в замену.
Вот как это будет выглядеть:
var T = new Date().toString().split(' ')[(document.all)?3:4].replace(/(^\d\d)/,function(){return ((parseInt(RegExp.$1)+23)%12)+1} );
Что, как я говорю, смешно. Если вы используете библиотеку, которая может выполнять
В расчетах по обратным ссылкам строка становится:
var T = new Date().toString().split(' ')[(document.all)?3:4].replace(/(^\d\d)/, (($1+23)%12)+1);
И это на самом деле не может быть и речи как полезного кода, если вы хорошо это документируете.
Эта строка говорит:
Создайте строку даты, разбейте ее на пробелы, получите браузерную часть,
и замените первое двузначное число на это измененное число.
Суть истории в том, что способ преобразования 24-часовых часов в 12-часовые часы
это неочевидный математический расчет:
Вы добавляете 23, мод на 12, затем добавляете еще один.