技术笔记: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);


}

相关文章
|
27天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
44 1
|
2月前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
2月前
|
JavaScript 前端开发 API
探索后端技术:Node.js的优势和实际应用
【10月更文挑战第6天】 在当今数字化时代,后端开发是任何成功软件应用的关键组成部分。本文将深入探讨一种流行的后端技术——Node.js,通过分析其核心优势和实际应用案例,揭示其在现代软件开发中的重要性和潜力。
163 2
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
49 0
|
28天前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
41 5
|
1月前
|
自然语言处理 JavaScript 前端开发
[JS]同事看了我做的this笔记,直摇头,坦言:我还是参考启发博文吧
本文介绍了JavaScript中`this`关键字的重要性和使用规则。作者回顾了早期笔记,总结了`this`指向的各种情况,并分享了最新的理解。文章强调了`this`在不同上下文中的指向,包括对象方法、全局函数、箭头函数等,并提供了改变`this`指向的方法。适合JavaScript开发者参考。
48 2
|
1月前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
41 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
1月前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
39 1
|
1月前
|
JavaScript 前端开发 搜索推荐
Moment.js、Day.js、Miment,日期时间库怎么选?
【10月更文挑战第29天】如果你需要一个功能强大、插件丰富的日期时间库,并且对性能要求不是特别苛刻,Moment.js是一个不错的选择;如果你追求极致的轻量级和高性能,那么Day.js可能更适合你;而如果你有一些特定的日期时间处理需求,并且希望在性能和功能之间取得平衡,Miment也是可以考虑的。
|
2月前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
30 3