首页 > 代码库 > js中时间new Date()详解以及实例

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()详解以及实例