JavaScript 的 new date() 和 date() 为啥输出不一样?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 的 new date() 和 date() 为啥输出不一样?相关的知识,希望对你有一定的参考价值。
<script type="text/javascript">
<!--
alert( Date() ); // 输出:Mon Jan 9 01:27:18 2012
alert( new Date() ); // 输出:Mon Jan 9 01:27:18 UTC+0800 2012
//-->
</script>
但是,他们是有区别的,alert( Date() ); 是将Date作为方法来使用,new Date()是将Date作为类来使用.
另外,这两句话相当于
alert((Date()).toString());
alert((new Date()).toString());追问
都是调用 Date(),传入的参数看起来都一样(参数为空),做为方法来使用和做为类来使用为什么输出的结果就不相同?
追答在IE6,7,8中的确存在这种情况,但IE9与Firefox都不存在这种情况.至于为什么不一样,道理很简单,如下:
function Date()
return "XX";
Date.prototype.toString=function()
return "YY";
按照你上述的方法调用,你会发现,(Date()).toString()输出XX,而(new Date()).toString()则输出YY.
一个是按标准的全的时间格式
Javascript中的Date
Date类用来处理日期和时间,基于1970年1月1日(世界标准时间)起的毫秒数(时间戳)
1、创建日期对象
var now = new Date();//当前时间 var date = new Date(1000);//1970年1月1日起过了秒钟的时间 var date = new Date(year,month,day,hour,minute,second,millisecond);//通过分别指定各个时间分量来创建日期对象
2、提供的方法
getTime()获取一个Date对象所基于的时间戳
此外还提供了一系列的getter/setter方法来操作各个时间分量,如getHours()
注意:除了getMonth()(获取月份)的返回值是从0开始,其余都是从1开始
示例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Javascript测试</title> <script type="text/javascript"> var now = new Date(); alert(now); alert("时间戳: " + now.getTime()); var year = now.getFullYear(); var month = now.getMonth(); var day = now.getDate(); alert("年月日:" + year + "-" + (month<10?"0"+month:month) + "-" + (day<10?"0"+day:day)); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); alert("时分秒:" + hour + ":" + (minute<10?"0"+minute:minute) + ":" + (second<10?"0"+second:second)); </script> </head> <body> </body> </html>
效果图
以上是关于JavaScript 的 new date() 和 date() 为啥输出不一样?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript - Date(),new Date()和ISODate之间的区别
javascript中new Date()的浏览器兼容性问题
javaScript系列:js中获取时间new Date()详细介绍