English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Js получение текущей даты и времени, код форматирования

В этой статье я поделился с вами о том, как получить текущую дату и время в JavaScript и форматировать их, подробности см. ниже

var myDate = new Date();
myDate.getYear();    // Получить текущий год (2 цифры)
myDate.getFullYear();  // Получить полный год (4 цифры, 1970-????)
myDate.getMonth();    // Получить текущий месяц (0-11, 0 означает январь)
myDate.getDate();    // Получение текущего дня (1-31)
myDate.getDay();     // Получение текущего дня недели X (0-6, 0 - воскресенье)
myDate.getTime();    // Получение текущего времени (миллисекунды с 1.1.1970)
myDate.getHours();    // Получение текущих часов (0-23)
myDate.getMinutes();   // Получение текущих минут (0-59)
myDate.getSeconds();   // Получение текущих секунд (0-59)
myDate.getMilliseconds();  // Получение текущих миллисекунд (0-999)
myDate.toLocaleDateString();   // Получение текущей даты
var mytime = myDate.toLocaleTimeString();   // Получение текущего времени
myDate.toLocaleString();    // Получение даты и времени

Список методов библиотеки скриптов даты и времени
Date.prototype.isLeapYear определение високосного года
Date.prototype.Format форматирование даты
Date.prototype.DateAdd расчет даты
Date.prototype.DateDiff сравнение разницы между датами
Date.prototype.toString преобразование даты в строку
Date.prototype.toArray разбиение даты на массив
Date.prototype.DatePart получение части даты
Date.prototype.MaxDayOfDate определение максимального дня в месяце для даты
Date.prototype.WeekNumOfYear определение недели года для даты
StringToDate преобразование строки в дату
IsValidDate проверка действительности даты
CheckDateTime проверка полной даты и времени
daysBetween разница в днях между датами 

js код:

//--------------------------------------------------- 
// Определение високосного года 
//--------------------------------------------------- 
Date.prototype.isLeapYear = function();  
{  
  return (0 == this.getYear() % 4 && ((this.getYear() % 100 != 0) || (this.getYear() % 400 == 0)));  
}  
//--------------------------------------------------- 
// форматирование даты 
// формат YYYY/yyyy/YY/yy показывает год 
// MM/M месяц 
// W/w неделя 
// dd/DD/d/D дата 
// hh/HH/h/H время 
// mm/m минуты 
// ss/SS/s/S секунды 
//--------------------------------------------------- 
Date.prototype.Format = function(formatStr)  
{  
  var str = formatStr;  
  var Week = ['日','一','二','三','四','五','六']; 
  str=str.replace(/yyyy|YYYY/,this.getFullYear());  
  str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));  
  str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0' + this.getMonth());  
  str=str.replace(/M/g,this.getMonth());  
  str=str.replace(/w|W/g,Week[this.getDay()]);  
  str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());  
  str=str.replace(/d|D/g,this.getDate());  
  str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());  
  str=str.replace(/h|H/g,this.getHours());  
  str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());  
  str=str.replace(/m/g,this.getMinutes());  
  str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());  
  str = str.replace(/s|S/g, this.getSeconds());  
  return str;  
}  
//+--------------------------------------------------- 
//| Определение разницы в днях между двумя датами, формат даты YYYY-MM-dd  
//+--------------------------------------------------- 
function daysBetween(DateOne, DateTwo) 
{  
  var OneMonth = DateOne.substring(5, DateOne.lastIndexOf ('-')); 
  var OneDay = DateOne.substring(DateOne.length, DateOne.lastIndexOf ('-')+1); 
  var OneYear = DateOne.substring(0, DateOne.indexOf ('-')); 
  var TwoMonth = DateTwo.substring(5, DateTwo.lastIndexOf ('-')); 
  var TwoDay = DateTwo.substring(DateTwo.length, DateTwo.lastIndexOf ('-')+1); 
  var TwoYear = DateTwo.substring(0, DateTwo.indexOf ('-')); 
  var cha = ((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear) - Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear)) / 86400000);  
  return Math.abs(cha); 
} 
//+--------------------------------------------------- 
//| Вычисление даты 
//+--------------------------------------------------- 
Date.prototype.DateAdd = function(strInterval, Number) {  
  var dtTmp = this; 
  switch (strInterval) {  
    case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number)); 
    case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number)); 
    case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number)); 
    case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number)); 
    case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number)); 
    case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
    case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
    case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
  } 
} 
//+--------------------------------------------------- 
//| Сравнение разницы между датами dtEnd должен быть в формате даты или корректной строки даты 
//+--------------------------------------------------- 
Date.prototype.DateDiff = function(strInterval, dtEnd) {  
  var dtStart = this; 
  if (typeof dtEnd == 'string' )//如果是字符串转换为日期型 
  {  
    dtEnd = StringToDate(dtEnd); 
  } 
  switch (strInterval) {  
    case 's' :return parseInt((dtEnd - dtStart) / 1000); 
    case 'n' :return parseInt((dtEnd - dtStart) / 60000); 
    case 'h' :return parseInt((dtEnd - dtStart) / 3600000); 
    case 'd' :return parseInt((dtEnd - dtStart) / 86400000); 
    case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); 
    case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); 
    case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear(); 
  } 
} 
//+--------------------------------------------------- 
//| строка вывода даты, перегружена системный метод toString 
//+--------------------------------------------------- 
Date.prototype.toString = function(showWeek) 
{  
  var myDate= this; 
  var str = myDate.toLocaleDateString(); 
  if (showWeek) 
  {  
    var Week = ['日','一','二','三','四','五','六']; 
    str += ' 星期' + Week[myDate.getDay()]; 
  } 
  return str; 
} 
//+--------------------------------------------------- 
//| проверка законности даты 
//| формат: YYYY-MM-DD или YYYY/MM/DD 
//+--------------------------------------------------- 
function IsValidDate(DateStr)  
{  
  var sDate=DateStr.replace(/(^\s+|\s+$)/g,''); // удалить пробелы с обеих сторон;  
  if(sDate=='') return true;  
  // если формат соответствует YYYY-(/)MM-(/)DD или YYYY-(/)M-(/)DD или YYYY-(/)M-(/)D или YYYY-(/)MM-(/)D, то замените их на ''  
  // в базе данных, допустимые даты могут быть: YYYY-MM/DD (2003-3/21), база данных автоматически преобразует их в формат YYYY-MM-DD  
  var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');  
  if (s=='') // если формат соответствует YYYY-MM-DD или YYYY-M-DD или YYYY-M-D или YYYY-MM-D  
  {  
    var t = new Date(sDate.replace(/\-/g, '/'));  
    var ar = sDate.split(/[-/:]/);  
    if(ar[0] != t.getYear() || ar[1] != t.getMonth() + 1 || ar[2] != t.getDate())  
    {  
      //alert('Неправильный формат даты! Формат: YYYY-MM-DD или YYYY/MM/DD. Обратите внимание на високосные годы.');  
      return false;  
    }  
  }  
  else  
  {  
    //alert('Неправильный формат даты! Формат: YYYY-MM-DD или YYYY/MM/DD. Обратите внимание на високосные годы.');  
    return false;  
  }  
  return true;  
}  
//+--------------------------------------------------- 
//| Проверка даты и времени 
//| Формат: YYYY-MM-DD HH:MM:SS 
//+--------------------------------------------------- 
function CheckDateTime(str) 
{  
  var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;  
  var r = str.match(reg);  
  if(r == null) return false;  
  r[2] = r[2] - 1;  
  var d = new Date(r[1], r[2], r[3], r[4], r[5], r[6]);  
  if(d.getFullYear() != r[1]) return false;  
  if(d.getMonth() != r[2]) return false;  
  if(d.getDate() != r[3]) return false;  
  if(d.getHours() != r[4]) return false;  
  if(d.getMinutes() != r[5]) return false;  
  if(d.getSeconds() != r[6]) return false;  
  return true;  
}  
//+--------------------------------------------------- 
//| Разделите дату на массив 
//+--------------------------------------------------- 
Date.prototype.toArray = function() 
{  
  var myDate = this; 
  var myArray = Array(); 
  myArray[0] = myDate.getFullYear(); 
  myArray[1] = myDate.getMonth(); 
  myArray[2] = myDate.getDate(); 
  myArray[3] = myDate.getHours(); 
  myArray[4] = myDate.getMinutes(); 
  myArray[5] = myDate.getSeconds(); 
  return myArray; 
} 
//+--------------------------------------------------- 
//| Получение информации о дате 
//| Параметр interval указывает на тип данных 
//| y год m месяц d день w неделя ww неделя h час n минута s секунда 
//+--------------------------------------------------- 
Date.prototype.DatePart = function(interval) 
{  
  var myDate = this; 
  var partStr=''; 
  var Week = ['日','一','二','三','四','五','六']; 
  switch (interval) 
  {  
    case 'y' :partStr = myDate.getFullYear();break; 
    case 'm' :partStr = myDate.getMonth()+1;break; 
    case 'd' :partStr = myDate.getDate();break; 
    case 'w' :partStr = Week[myDate.getDay()];break; 
    case 'ww' :partStr = myDate.WeekNumOfYear();break; 
    case 'h' :partStr = myDate.getHours();break; 
    case 'n' :partStr = myDate.getMinutes();break; 
    case 's' :partStr = myDate.getSeconds();break; 
  } 
  return partStr; 
} 
//+--------------------------------------------------- 
//| Получение максимального дня в текущем месяце 
//+--------------------------------------------------- 
Date.prototype.MaxDayOfDate = function() 
{  
  var myDate = this; 
  var ary = myDate.toArray(); 
  var date1 = (new Date(ary[0],ary[1]+1,1)); 
  var date2 = date1.dateAdd(1,'m',1); 
  var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd')); 
  return result; 
} 
//+--------------------------------------------------- 
//| Получение текущей недели года 
//+--------------------------------------------------- 
Date.prototype.WeekNumOfYear = function() 
{  
  var myDate = this; 
  var ary = myDate.toArray(); 
  var year = ary[0]; 
  var month = ary[1]+1; 
  var day = ary[2]; 
  document.write('< script language=VBScript\> \n'); 
  document.write('myDate = Datue(''+month+'-'+day+'-'+year+'') \n'); 
  document.write('result = DatePart('ww', myDate) \n'); 
  document.write(' \n'); 
  return result; 
} 
//+--------------------------------------------------- 
//| Convert string to date type  
//| Format MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd 
//+--------------------------------------------------- 
function StringToDate(DateStr) 
{  
  var converted = Date.parse(DateStr); 
  var myDate = new Date(converted); 
  if (isNaN(myDate)) 
  {  
    //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-'; 
    var arys= DateStr.split('-'); 
    myDate = new Date(arys[0],--arys[1],arys[2]); 
  } 
  return myDate; 
} 

Если нужно реализовать такой часы:
03 декабря 2012 года 17:21:16 понедельник

 //本地时钟
function clockon() {
  var now = new Date();
  var year = now.getFullYear(); //getFullYear getYear
  var month = now.getMonth();
  var date = now.getDate();
  var day = now.getDay();
  var hour = now.getHours();
  var minu = now.getMinutes();
  var sec = now.getSeconds();
  var week;
  month = month + 1;
  if (month < 10) month = "0" + month;
  if (date < 10) date = "0" + date;
  if (hour < 10) hour = "0" + hour;
  if (minu < 10) minu = "0" + minu;
  if (sec < 10) sec = "0" + sec;
  var arr_week = new Array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
  week = arr_week[day];
  var time = "";
  time = year + " год " + month + " месяц " + date + " день " + " " + hour + ":" + minu + ":" + sec + " " + week;
  $("#bgclock").html(time);
  var timer = setTimeout("clockon()", 200);
}

Вот весь контент этой статьи, мы надеемся, что он поможет вам в изучении, и также надеемся, что вы будете активно поддерживать учебник "Крик教程".

Заявление: Контент этой статьи предоставлен из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не имеет права собственности, не underwent редактирование и не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении и предоставьте соответствующие доказательства. Если будет подтверждено, что нарушен авторский права, сайт немедленно удаляет涉嫌侵权的内容。

Основной учебник
Вам может понравиться