与其他引用类型一样,Date类型也重写了toLocaleString()、toString()和valueOf()方法;但这些方法返回的值与其他类型中的方法不同。Date类型的toLocaleString()方法会按照与浏览器设置的地区相适应的格式返回日期和时间。这大致意味着时间格式中会包含AM或PM,但不会包含时区信息(当然,具体的格式会因浏览器而异)。而toString()方法则通常返回带有时区信息的日期和时间,其中时间一般以军用时间(即小时的范围是0到23)表示。以下给出了在不同浏览器中调用toLocaleString()和toString()方法,输出PST (Pacific Standard Time,太平洋标准时间)时间2007年2月1日午夜零时的结果:
Internet Explorer 7
toLocaleString() - Thursday, February 01, 2007 12:00:00 AM
toString() - Thu Feb 1 00:00:00 PST 2007
Firefox 2
toLocaleString() - Thursday, February 01, 2007 12:00:00 AM
toString() - Thu Feb 01 2007 00:00:00 GMT - 0800 (Pacific Standard Time)
Safari3
toLocaleString() - Thursday, February 01, 2007 00:00:00
toString() - Thu Feb 01 2007 00:00:00 GMT - 0800 (Pacific Standard Time)
Chrome 0.2
toLoc:aleString() - Thu Feb 01 2007 00:00:00 GMT - 0800 (Pacific Standard Time)
toString() - Thu Feb 01 2007 00:00:00 GMT - 0800 (Pacific Standard Time)
Opera 9
toLocaleString()-2 /1/2007 12: 00: 00 AM
toString() - Thu, 01 Feb 2007 00:00:00 GMT - 0800
显然,这两个方法在不同的浏览器中返回的日期和时间格式可谓大相径庭。事实上,toLocaleString()和toString()的这一差别仅在调试代码时比较有用,而在显示日期和时间时没有什么价值。 至于Date类型的valueOf()方法,则根本不返回字符串,而是返回日期的毫秒表示。因此,可以方便使用比较操作符(小于或大于)来比较日期值。请看下面的例子:
var datel=new Date(2007, 0, 1); //"January l,2007"
var date2=new Date(2007, 1, 1); //"February l,2007"
alert(datel alert (datel>date2); //false
从逻辑上讲,2007年1月1日要早于2007年2月1日,此时如果我们说前者小于后者比较符合常理。而表示2007年1月1日的毫秒值小于表示2007年2月1日的毫秒值,因此在首先使用小于操作符比较日期时,返回的结果是true。这样,就为我们比较日期提供了极大方便。
希望本文对广大站长或从事企业网站建设公司的团队有所帮助,如对此不太理解的,可以与南昌网站建设公司百恒网络技术部联系。我们很高兴与广大站长和从事企业网站建设公司技术人员分享我们的技术和经验。