js获取当前日期时间及其它日期操作汇总


Posted in Javascript onMarch 08, 2016

本文实例为大家分享了javascript时间操作的使用常见场景,供大家参考,具体内容如下

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 日期天数差

javascript代码块

//————————————————— 
// 判断闰年 
//————————————————— 
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; 
}

//+————————————————— 
//| 字符串转成日期类型 
//| 格式 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); 
}

如果大家还意犹未尽的话,还可以参考专题进一步学习《javascript时间操作汇总》《javascript日期操作汇总》

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
密码强度检测效果实现原理与代码
Jan 04 Javascript
jquery live()重复绑定的解决方法介绍
Jan 03 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
jquery实现华丽的可折角广告代码
Sep 02 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
JS简单实现点击复制链接的方法
Aug 03 Javascript
带你快速理解javascript中的事件模型
Aug 14 Javascript
Vue中组件之间数据的传递的示例代码
Sep 08 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
让axios发送表单请求形式的键值对post数据的实例
Aug 11 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 Javascript
js实现上传图片并显示图片名称
Dec 18 Javascript
使用JQuery实现智能表单验证功能
Mar 08 #Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 #Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 #Javascript
Angularjs material 实现搜索框功能
Mar 08 #Javascript
jQuery控制frames及frame页面JS的方法
Mar 08 #Javascript
三种Node.js写文件的方式
Mar 08 #Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 #Javascript
You might like
编写自己的php扩展函数
2006/10/09 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
读jQuery之三(构建选择器)
2011/06/11 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
jquery移动节点实例
2015/01/14 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python打印斐波拉契数列实例
2015/07/07 Python
numpy自动生成数组详解
2017/12/15 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
详解Python中where()函数的用法
2018/03/27 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python3实现mysql导出excel的方法
2019/07/31 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
应届大学生的推荐信
2013/11/20 职场文书
园艺师求职信
2014/04/27 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
综治维稳工作汇报
2014/10/27 职场文书