技术笔记:Js获取当前日期时间及其它操作

简介: 技术笔记:Js获取当前日期时间及其它操作

var myDate = new Date();


myDate.getYear(); //获取当前年份(2位)


myDate.getFullYear(); //获取完整的年份(4位,1970-)


myDate.getMonth(); //获取当前月份(0-11,0代表1月)


myDate.getDate(); //获取当前日(1-31)


myDate.getDay(); //获取当前星期X(0-6,0代表星期天)


myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)


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' //代码效果参考:http://www.lyjsj.net.cn/wx/art_23422.html

:return new Date(Date.parse(dtTmp) + ((86400000 7) Number));

case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number3, 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(' \n');


document.write('myDate = Datue(''+month+'-'+day+'-'+year+'') \n');


document.write('result = DatePart('ww', myDate) \n');


document.write(' \n');


return result;


}


//+---------------------------------------------------


//| 字符串转成日期类型


//| 格式 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;


}


若要显示:当前日期加时间(如:2009-06-12 12:00)


function CurentTime()


{


var now = new Date();


var year = now.getFullYear(); //年


var month = now.getMonth() + 1; //月


var day = now.getDate(); //日


var hh = now.getHours(); //时


var mm = now.getMinutes(); //分


var clock = year + "-";


if(month < 10)


clock += "0";


clock += month + "-";


if(day < 10)


clock += "0";


clock += day + " ";


if(hh < 10)


clock += "0";


clock += hh + ":";


if (mm < 10) clock += '0';


clock += mm;


return(clock);


}

相关文章
|
2天前
|
前端开发 JavaScript 容器
程序技术好文:纯原生javascript下拉框表单美化实例教程
程序技术好文:纯原生javascript下拉框表单美化实例教程
|
2天前
|
前端开发 JavaScript 容器
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
10 0
|
3天前
|
JavaScript 前端开发
程序技术好文:第一百三十八节,JavaScript,封装库
程序技术好文:第一百三十八节,JavaScript,封装库
|
3天前
|
JavaScript vr&ar 数据库
一篇文章讲明白JS获取当前日期
一篇文章讲明白JS获取当前日期
|
3天前
|
JavaScript
必知的技术知识:js保留二位小数
必知的技术知识:js保留二位小数
|
3天前
|
Web App开发 JavaScript iOS开发
技术笔记:js数组定义和方法(包含ES5新增数组方法)
技术笔记:js数组定义和方法(包含ES5新增数组方法)
|
JavaScript 前端开发 Unix
JavaScript 日期权威指南
简介 JavaScript通过强大的对象为我们提供日期处理功能:日期。 本文确实_不是_谈论 Moment.js ,我认为它是处理日期的最佳库,你应该在处理日期时几乎总是使用它。
942 0
|
17天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园竞赛管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园竞赛管理系统附带文章源码部署视频讲解等
165 63
|
17天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的小型医院医疗设备管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的小型医院医疗设备管理系统附带文章源码部署视频讲解等
29 6
|
17天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园健康驿站管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园健康驿站管理系统附带文章源码部署视频讲解等
37 5