js中时间new Date()详解以及实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中时间new Date()详解以及实例相关的知识,希望对你有一定的参考价值。
介绍
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) // 所以获取当前月份是myDate.getMonth()+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( ); //获取日期与时间
JS获取当前时间戳的方法-javascript 获取当前毫秒时间戳有以下三种方法:
var timestamp =Date.parse(new Date()); 结果:1280977330000 //不推荐; 毫秒改成了000显示
var timestamp =(new Date()).valueOf(); 结果:1280977330748 //推荐;
var timestamp=new Date().getTime(); 结果:1280977330748 //推荐;
js中单独调用new Date(); 显示这种格式 Mar 31 10:10:43 UTC+0800 2012
但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数
将字符串形式的日期转换成日期对象
var strTime="2011-04-16"; //字符串日期格式
var date= new Date(Date.parse(strTime.replace(/-/g, "/"))); //转换成Data();
new Date() ; //参数可以为整数; 也可以为字符串; 但格式必须正确
new Date(2009,1,1); //正确
new Date("2009/1/1"); //正确
new Date("2009-1-1"); //不兼容,在谷歌下能解析,在IE浏览器9及以上结果为[date] Invalid Date,IE8及以下结果为NAN。
说明:日期对象new Date()的参数形式如下:
1)new Date("month dd,yyyy hh:mm:ss");
2)new Date("month dd,yyyy");
3)new Date(yyyy,mth,dd,hh,mm,ss);
4)new Date(yyyy,mth,dd);
5)new Date(ms);
需要注意最后一种形式,参数表示的是需要创建的时间和 GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:
month:用英文 表示月份名称,从January到December
mth:用整数表示月份,从0(1月)到11(12月)
dd:表示一个 月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm: 分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
例如:
new Date("January 12,2006 22:19:35"); new Date("January 12,2006"); new Date(2006,0,12,22,19,35); new Date(2006,0,12); new Date(1137075575000);
上面的各种创建形式都表示2006年1月12日这一天。
实例一:计算两个日期相隔的天数 :
先贴方法:
//日期格式2017-02-01或者2017/02/01等 //startDate开始日期,endDate结束日期,separator分隔符号如‘-‘ function DateDiff(startDate, endDate,separator){ var aDate, oDate1, oDate2, iDays ; aDate = startDate.split(separator); oDate1 = new Date(aDate[0]+‘-‘+aDate[1]+‘-‘+aDate[2]) ; aDate = endDate.split(separator); oDate2 = new Date(aDate[0]+‘-‘+ aDate[1] +‘-‘+aDate[2]); iDays = parseInt(Math.abs(oDate1 -oDate2)/1000/60/60/24); //把相差的毫秒数转换为天数 return iDays ; } console.log(DateDiff(‘2017-02-01‘, ‘2017-03-01‘,‘-‘));
new Date(‘2017-02-01‘)格式处理方式。
也可以这样实现:
function DateDiff(startDate, endDate,separator){ var aDate, oDate1, oDate2, iDays ; aDate = startDate.split(separator); oDate1 = new Date(aDate[0],aDate[1]-1,aDate[2]) ; console.log(oDate1); aDate = endDate.split(separator); oDate2 = new Date(aDate[0],aDate[1]-1,aDate[2]); iDays = parseInt(Math.abs(oDate1 -oDate2)/1000/60/60/24); //把相差的毫秒数转换为天数 return iDays ; } console.log(DateDiff(‘2017-02-01‘, ‘2017-03-01‘,‘-‘));
new Date(2017,02,01)格式处理方式,但是月份需要减1,月份是从0-11。
实例二:JS判断某年某月有多少天
JavaScript里面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,当你传入的是"xxxx/xx/0"(0号)的话,得到的日期是"xx"月的前一个 月的最后一天("xx"月的最大取值是69,题外话),如果传入"1999/13/0",会得到"1998/12/31"。而且最大的好处是当你传 入"xxxx/3/0",会得到xxxx年2月的最后一天,它会自动判断当年是否是闰年来返回28或29,不用自己判断,太方便了!!所以,我们想得到选 择年选择月有多少天的话,只需要
var d=new Date("选择年/选择月+1/0");
alert(d.getDate());
下面是使用Javascript编写的获取某年某月有多少天的getDaysInOneMonth(year, month)方法:
function getDaysInOneMonth(year, month){ month = parseInt(month,10)+1; var d= new Date(year+"/"+month+"/0"); return d.getDate(); }
Chrome浏览器(谷歌浏览器)对这个特性不支持,得到的结果是NAN。兼容性问题啊!其原因就是非标准日期格式。
改成如下的格式就OK:
function getDaysInMonth(year,month){ var month = parseInt(month,10); var temp = new Date(year,month,0); return temp.getDate(); } console.log(getDaysInMonth(2017,2)); //28
实例三:js获取某年某月的哪些天是周六和周日
<div id="text"></div> <script type="text/javascript"> function time(y,m){ var tempTime = new Date(y,m,0); var time = new Date(); var saturday = new Array(); var sunday = new Array(); for(var i=1;i<=tempTime.getDate();i++){ var ss = time.setFullYear(y,m-1,i); var day = time.getDay(); if(day == 6){ saturday.push(i); }else if(day == 0){ sunday.push(i); } } var text = y+"年"+m+"月份"+"<br />" +"周六:"+saturday.toString()+"<br />" +"周日:"+sunday.toString(); document.getElementById("text").innerhtml = text; } time(2017,2); </script>
参考地址:https://segmentfault.com/a/1190000003710954?mType=Group
http://blog.csdn.net/liaozhongping/article/details/51139854
以上是关于js中时间new Date()详解以及实例的主要内容,如果未能解决你的问题,请参考以下文章