javascript 玩转Date对象(实例讲解)
前言:最近在做一个日期选择功能,在日期转换的时候经常换到晕,总结一下常用的Date对象的相关用法,方便日后直接查看使用~
1.newDate()的使用方法有:
不接收任何参数:返回当前时间;
接收一个参数x:返回1970年1月1日+x毫秒的值。
newDate(1,1,1)返回1901年2月1号。
newDate(2016,1,1)不会在1900年的基础上加2016,而只是表示2016年2月1号。
2.使用newDate(time)将时间转换成Date对象
注意:time格式需要为1999/12/3123:59(不能为1999-12-3023:43),否则在一些机型下可能会报错。
3.date对象一些常用的api
newDate()转换之后的数据,可以直接使用下面的api newDate(x).getMonth()+1//获取月份 newDate(x).getDate//获取日期 newDate(x).getHours()//获取小时 newDate(x).getMinutes()//获取分钟 newDate(x).toLocaleDateString());//转换为本地日期格式,视环境而定,输出:2017年07月04日 newDate(x).toLocaleString());//转换为本地日期和时间格式,视环境而定,输出:2017年07月04日上午10:03:05
4.javascript没有原生提供但却经常需求使用的功能
根据日期获取当前星期几
//参数日期 getWeek(day){ constweekArr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六']; returnweekArr[day]; } getWeek(newDate(x).getDay())
获取某个时间+1个小时,直接对小时数进行加1可能会溢出,因此先转换成Date对象,再使用setHours改变小时。
newDate(x).setHours(newDate(x).getHours()+1,newDate(x).getMinutes());
为了统一格式,返回日期是10以下,需在前面补0.
functiongetFull(n){ return(n>9?'':'0')+n; } varx=getFull(3);//03 vary=getFull(11);//11
经常要对日期进行转换,因此增加一个转换格式的函数
Date.prototype.Format=function(fmt){//author:meizz varo={ "M+":this.getMonth()+1,//月份 "d+":this.getDate(),//日 "h+":this.getHours(),//小时 "m+":this.getMinutes(),//分 "s+":this.getSeconds(),//秒 "q+":Math.floor((this.getMonth()+3)/3),//季度 "S":this.getMilliseconds()//毫秒 }; if(/(y+)/.test(fmt))fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)); for(varkino) if(newRegExp("("+k+")").test(fmt))fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length))); returnfmt; } //调用: vartime1=newDate().Format("yyyy-MM-dd"); vartime2=newDate().Format("yyyy-MM-ddhh:mm:ss");
以上这篇javascript玩转Date对象(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。