English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье я поделился с вами о том, как получить текущую дату и время в 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 (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении и предоставьте соответствующие доказательства. Если будет подтверждено, что нарушен авторский права, сайт немедленно удаляет涉嫌侵权的内容。