Приведены примеры функций с датой и временем, а также список стандартных методов объекта Date.
Нужно обратить внимание на коварный getDay(), он возвращает день недели, день месяца getDate()
Получение поля типа дата из SP в JavaScript
Дата может загружаться с ошибкой и тогда JS выдаст дату + 1 день.
1: var workDate = item.get_item('fiendName'); //Дата
Сортировка массива по дате для дат с разными годами (результат запроса из SP)
1://Сортировка по датам
2: function sortFunction(a, b) {
3: var workDateA = a.get_item('data1'); //Дата
4: var workDateB = b.get_item('data2'); //Дата
5:
6: var checkkDateA = new Date("2000", workDateA.getMonth(), workDateA.getDate()); //Дата для сравнения
7: var checkkDateB = new Date("2000", workDateB.getMonth(), workDateB.getDate()); //Дата для сравнения
8:
9: return checkkDateA - checkkDateB;
10:}
11:
12:items.sort(sortFunction);
Проверка регулярным выражением времени HH:MM
1: function validateTime(value) {
2: // validate if time has the format HH:MM
3: var re = /^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}$/i;
4: return re.test(value);
5: }
Обработка HH:MM
1: function parseTime(value) {
2: // parse time HH:MM
3: var time = value.split(":");
4: return { hh: time[0], mm: time[1] };
5: }
Суммирование часов и минут HH:MM + HH:MM
1: function sumUpTime(t1, t2) {
2: // sum up HH:MM + HH:MM // прибавление часов и минут
3: var d1 = new Date(0);
4: var d12 = new Date(0)
5: var d2 = new Date(0);
6:
7: d1.setHours(parseTime(t1).hh);
8: d1.setMinutes(parseTime(t1).mm);
9:
10: d12.setHours(0);
11:
12: d2.setHours(parseTime(t2).hh);
13: d2.setMinutes(parseTime(t2).mm);
14:
15: // .getTime - number of milliseconds since 1970
16: var result = d1.getTime() - d12.getTime() + d2.getTime();
17:
18: // make date object from milliseconds
19: var newDate = new Date(result);
20:
21: var hh = "" + newDate.getHours();
22: var mm = "" + newDate.getMinutes();
23:
24: if(hh.length < 2) hh = "0" + hh;
25: if(mm.length < 2) mm = "0" + mm;
26:
27: return {hh:hh,mm:mm}
28: }
29: // Использование sumUpTime("12:45", "00:20").hh --> 13
Обработка даты
1: function parseDate(value) {
2: // parse date 24.12.2009
3: var tmp = value.split(".");
4: return { day: tmp[0], month: tmp[1], year: tmp[2] };
5: }
6: // Использование parseDate("23.01.2009").year
Прибавление дней к дате, получаем новую дату
1: function addDays(date, n) {
2: // может отличаться на час, если произошло событие перевода времени
3: var d = new Date();
4: d.setTime(date.getTime() + n * 24 * 60 * 60 * 1000);
5: return d;
6: }
Вывод текущей даты и времени на странице
1: function _getDate() {
2: var month_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
3: var d = new Date();
4: var current_date = d.getDate();
5: var current_month = d.getMonth();
6: var current_year = d.getFullYear();
7:
8: return current_date + " " + month_names[current_month] + " " + current_year;
9:
10: }
11: function _getTime() {
12: var currentTime = new Date();
13: var hours = currentTime.getHours();
14: var minutes = currentTime.getMinutes();
15:
16: if (minutes < 10){
17: minutes = "0" + minutes;
18: }
19: return hours + ":" + minutes;
20: }
21: // document.getElementById('date_time').innerHTML = _getDate() + " " + _getTime();
Работа с объектом Дата, Date functions, methods
Функция | Описание | Значение | Пример |
getDate() getUTCDate() | Дни месяца | 1-31 | var birthday = new Date("August 11, 1984 11:16:08"); document.write(birthday.getDate()); 11 var toDay = new Date(); document.write(toDay.getDate()); [значение 1-31 текущей даты] |
getDay() getUTCDay() | Дни недели (целочисленные) | 0-6 | var d=new Date(); var weekday=new Array(7); weekday[0]="Воскресенье"; weekday[1]="Понедельник"; weekday[2]="Вторник"; weekday[3]="Среда"; weekday[4]="Четверг"; weekday[5]="Пятница"; weekday[6]="Суббота"; document.write("Сегодня " + weekday[d.getDay()]); |
getFullYear() getUTCFullYear() | Год | 1900+ | var toDay = new Date(); document.write(toDay.getFullYear()); 2009 |
getHours() getUTCHours() | Час (integer) | 0-23 | var myDate = new Date(); document.write(myDate.getHours()); 18 |
getMilliseconds() getUTCMilliseconds() | Миллисекунды (начиная с последней секунды) | 0-999 | |
Функция | Описание | Значение | Пример |
getMinutes() getUTCMinutes() | Минуты (начиная с последнего часа) | 0-59 | |
getMonth() getUTCMonth() | Месяц | 0-11 | |
getSeconds() getUTCSeconds() | Секунды (начиная с последней минуты) | 0-59 | |
getTime() | Количество миллисекунд начиная с 1 января 1970 | var currentDate = new Date(); document.write("Прошло " + currentDate.getTime() + " миллисекунд с 01.01.1970"); Прошло 1255927928895 миллисекунд с 01.01.1970 var minutes = 1000*60; var hours = minutes*60; var days = hours*24; var years = days*365; var d = new Date(); var t = d.getTime(); var y = t/years; document.write("Прошло: " + y + " лет с 1970!"); | |
Функция | Описание | Значение | Пример |
getTimezoneOffset() | Разница между местным временем и GMT в минутах | 0-1439 | var d = new Date(); document.write(d.getTimezoneOffset()); -420 (разница с Новосибирском в минутах) |
getYear() | Год | Числа 0-99 для 1900-1999 и четырех значные для 2000+ | |
parse() | Возвращает количество миллисекунд минувших с 1 января 1970 по заданную дату и время. | var d = Date.parse("Aug 11, 1984"); document.write(d); 461005200000 (зависит от местного времени) | |
setDate() setUTCDate() | Установка дня, задается значение 1-31 | var d = new Date(); d.setDate(15); document.write(d); Thu Nov 15 2009 12:09:18 GMT+0600 | |
setFullYear() setUTCFullYear() | Установка года, задается 4-х значное значение | См. пример для setDate() | |
setHours() setUTCHours() | Установка часа, задается значение 0-23 | См. пример для setDate() | |
setMilliseconds() setUTCMilliseconds() | Установка миллисекунд, задается целое значение | Аналогично как для setDate() | |
setMinutes() setUTCMinutes() | Установка минут, задается значение 0-59 | См. пример для setDate() | |
Функция | Описание | Значение | Пример |
setMonth() setUTCMonth() | Установка месяца, задается значение 0-11 | См. пример для setDate() | |
setSeconds() setUTCSeconds() | Установка секунд, задается значение 0-59 | См. пример для setDate() | |
setTime() | Установка даты, передавать нужно значение в миллисекундах (отрицательные или положительные), отсчет которых начинается с 1 января 1970 | var d = new Date(); d.setTime(77771564221); document.write(d); Mon Jun 19 05:12:44 UTC+0200 1972 var d = new Date(); d.setTime(-77771564221); document.write(d); Sat Jul 15 22:47:15 UTC+0200 1967 | |
setYear() | Установка года, задается двузначное или 4-х значные значения | var myDate = new Date(); myDate.setYear(1989); document.write(myDate); Mon Oct 19 1989 16:33:24 GMT+0600 | |
toGMTString() toUTCString() | GMT дата и время строкой | day dd mmm yyyy hh:mm:ss GMT | var d = new Date(); document.write (d.toGMTString()); Sun, 21 Oct 2009 08:41:33 GMT (текущая дата и время) var born = new Date("July 21, 1984 01:15:00"); document.write(born.toGMTString()); Wed, 20 Jul 1984 18:15:00 GMT (может отличаться текущим, т.к по GMT) |
toLocaleString() | Метод, возвращающий местную текущую дата и время русской строкой | Зависит от операционной системы и браузера | var d = new Date(); document.write(d.toLocaleString()); 20 Ноябрь 2009 г. 10:12:13 |
toString() | Текущая дата и время строкой | Зависит от операционной системы и браузера | var d = new Date(); document.write (d.toString()); Sun Nov 23 2009 08:36:55 GMT+0600 |
UTC() | Возвращает количество миллисекунд, начиная с 1 января 1970, задается значение года, месяца, дня (и необязательно часы, минуты, секунды, миллисекунды) | Количество миллисекунд | var d = Date.UTC(1980,6,2); document.write(d); 331344000000 |
valueOf() | Количество миллисекунд, начиная с 1 января 1970 | См. предыдущий пример |
Комментариев нет:
Отправить комментарий