понедельник, 13 мая 2013 г.

Javascript функции даты и времени (date/time functions)


Приведены примеры функций с датой и временем, а также список стандартных методов объекта 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-31var 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-6var 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-23var 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-1439var 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 GMTvar 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 См. предыдущий пример

Комментариев нет:

Отправить комментарий