JavaScript 没有一个基本的日期数据类型,所以我们只能显式地创建Date对象。我们创建新的Date对象和创建String对象的方式是一样的,使用关键字new和Date构造函数。下面这行创建了一个包含当前日期和实践的Date对象:

var todaysDate = new Date();

为了创建一个存储一个特定日期或时间的Date对象,我们可以简单地把日期或日期与时间放到括号的内面:

var newMillennium = new Date( "1 Jan 2000 10:24:00" );

不同的国家使用不同的顺序来描述日期。举个例子,美国指定的日期格式是MM/DD/YY, 而欧洲的日期格式是DD/MM/YY, 在中国它们的格式是YY/MM/DD。如果你使用简写的名字指定月份,那么你可以以任意的顺序使用:

var someDate = new Date( "10 Jan 2002" );

var someDate = new Date( "Jan 10 2002" );

var someDate = new Date( "2002 10 Jan" );

实际上,Date对象可以拥有许多参数:

var someDate = new Date( aYear, aMonth, aDate,➥

anHour, aMinute, aSecond, aMillisecond )

要使用这些参数,你首先需要指定年份和月份,然后使用你需要的参数,可是你不得不按顺序逐个使用且不能在它们之间选择。举例来说,你可以指定年份,月份,日期和小时:

var someDate = new Date( 2003, 9, 22, 17 );

可是你不能指定年份,月份,然后指定小时:

var someDate = new Date( 2003, 9, , 17 );

注解: 尽管我们通常认为九月(September)是第9个月份,但是JavaScript从0(一月)开始计算月份,因此月份8表示九月。

2.1.1.1.1.  使用Date对象

Date对象拥有许多的方法,你可以用来获取或设置一个日期或时间。你可以使用本地时间 (你的电脑所在时区的时间) 或者UTC (全球标准时间,也叫格林威治标准时间)。 虽然这个可能非常有用,你要意识到当你处理Date的时候,许多人们并没有正确的设置他们的时区。让我们看一个例子,它展示了其中的一些方法:

<html>

<body>

<script type="text/javascript">

// Create a new date object

var someDate = new Date( "31 Jan 2003 11:59" );

// Retrieve the first four values using the

// appropriate get methods

document.write( "Minutes = " + someDate.getMinutes() + "<br>" );

document.write( "Year = " + someDate.getFullYear() + "<br>" );

document.write( "Month = " + someDate.getMonth() + "<br>" );

document.write( "Date = " + someDate.getDate() + "<br>" );

// Set the minutes to 34

someDate.setMinutes( 34 );

document.write( "Minutes = " + someDate.getMinutes() + "<br>" );

// Reset the date

someDate.setDate( 32 );

document.write( "Date = " + someDate.getDate() + "<br>" );

document.write( "Month = " + someDate.getMonth() + "<br>" );

</script>

</body>

</html>

下面是你会得到的结果:

Minutes = 59

Year = 2003

Month = 0

Date = 31

Minutes = 34

Date = 1

Month = 1

代码的这一行第一眼看起来可能有点违反常规:

someDate.setDate( 32 );

JavaScript 知道在一月份中没有32天,因此解释器没有试着把日期设置为1月32日,而是从1月1日起数了32天,所以给我们返回了2月1日。

这是个非常方便的特性,如果你需要在一个日期上增加一些天数。通常如果我们想在一个日期上增加许多天,我们不得不考虑在不同的月份中的天数,还有是否是一个闰年,但是如果我们使用JavaScript的日期来处理则非常的容易:

<html>

<body>

<script type="text/javascript">

// Ask the user to enter a date string

var originalDate = prompt("Enter a date (Day, Name of➥

the Month, Year) ", "31 Dec 2003" );

// Overwrite the originalDate variable with a new Date

// object

var originalDate = new Date( originalDate );

// Ask the user to enter the number of days to be

// added, and convert to number

var addDays = Number( prompt( "Enter number of days➥

to be added", "1" ) )

// Set a new value for originalDate of originalDate

// plus the days to be added

originalDate.setDate( originalDate.getDate( ) + addDays )

// Write out the date held by the originalDate

// object using the toString( ) method

document.write( originalDate.toString( ) )

</script>

</body>

</html>

如果你在提示的时候输入31 Dec 2003(2003年12月31日),还有1作为需要增加的天数,然后你会得到的结果是Thu Jan 1 00:00:00 UTC+0800 2004(星期四,2004年1月1日,零点零分零秒)。

n        注解: 注意到在这个脚本的第三行中,我们使用了Math对象的Number()方法。如果我们不使用的话程序也能正常运行,但是结果会是不一样的。如果你不希望使用这个方法来转换不同的数据类型,那么有一个小技巧:一个使用parseInt(), parseFloat(),或者Number()函数可以转换成数字的字符串,如果你用它减去0,那么你就会把它转换成一个数字,如果你给一个数字上加一个空字符串,‘’,那么你就会把它转换成一个字符串,这个功能通常需要使用toString()来处理。

在代码的第四行中,我们设置日期为originalDate.getDate()返回的值加上需要增加的天数计算出的结果,最后一行使用toString()方法以字符串的形式输出originalDate这个日期对象所包含的日期。如果你正在使用IE5.5以上版本或者以Gecko为基础的浏览器(Mozilla、 Netscape 6以上版本), 单独使用日期的toDateString()函数会产生一个格式化好的字符串。你可以使用同样的方法获取和设置日期。如果你正在使用UTC时间,所有你需要作的就是把UTC加到这个方法名上。 因此getHours()变为getUTCHours(), setMonth()变为setUTCMonth(),以此类推。你也可以使用getTimezoneOffset()方法返回电脑的本地时间和UTC时间的小时差。(你不得不依赖用户已正确设置了它们的时区,并意识到不同国家之间的夏时制差别。)

注解:对于严格的日期处理,JavaScript可能并不是最合适的技术,因为你无法信任客户端的电脑都被适当正确地设定了。可是,你可以使用服务端的语言来构成你的JavaScript脚本中的初始日期,达到同样的目的。

转载于:https://www.cnblogs.com/snake-hand/archive/2008/01/09/2452416.html

Javascript中Date对象的使用相关推荐

  1. JavaScript中Date对象在IOS中的坑及解决方案

    踩坑记录: 使用vant-ui库中DatetimePicker 时间选择,初始化时间列表或者动态赋值选择时间项时IOS报错: [Vue warn]: Invalid prop: custom vali ...

  2. javascript中Date对象的初始化方法

    为什么80%的码农都做不了架构师?>>>    在前端代码中难免会涉及到时间的操作,如何构造一个Date对象呢?javascript为我们提供如下几种方式: new Date(&qu ...

  3. javascript中Date对象及方法

    Date对象: 该对象呈现时间中的某个时刻.其本质是自1970年1月1日(UTC)起经过的毫秒数,相关属性的方法如下:(如果Date对象中传入指定的时间,则以传入的指定时间返回相关数据,就不会以本地时 ...

  4. 创建健壮的isArray()函数(JavaScript中判断对象类型的种种方法)

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  5. 检查值是否是JavaScript中的对象

    如何检查值是否是JavaScript中的Object? #1楼 尝试这个 if (objectName instanceof Object == false) {alert('Not an objec ...

  6. 如何检查数组是否包含JavaScript中的对象?

    In this article, we will look at various methods to check if an array includes an object in JavaScri ...

  7. js实现小时钟,js中Date对象的使用?

    介绍一下js中Date对象的使用 dateObj = new Date() dateObj = new Date(dateValue) dateObj = new Date(year,month,da ...

  8. JavaScript中的对象比较[重复]

    本文翻译自:Object comparison in JavaScript [duplicate] This question already has answers here : 这个问题已经在这里 ...

  9. JavaScript中的对象

    什么是对象 现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征. 举例: 一部车,一个手机 车是一类事物,门口停的那辆车才是对象     特征:红色.四个轮子     行为: ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:目标文件里有什么
  2. docker 部署 nginx
  3. QTP的那些事--学习QTP必备的网站整理
  4. resnet50网络结构_Resnet50详解与实践(基于mindspore)
  5. .net 流(Stream) - 文件流、内存流、网络流
  6. 什么是java双亲委派机制
  7. 开源播放器 支持视频广告
  8. “爱思助手”曝为iOS木马:可绕过苹果DRM机制
  9. 代码整洁之道-对象和数据结构
  10. 认识java编程语言
  11. 淘宝面试-Strcpy与memcpy两函数的经典实现
  12. Type Cannot change version of project facet Dynamic Web Module to 3.0
  13. mysql libs 5.1.73_【MySQL案例】mysql-libs-5.1.73-3.el6
  14. 大组合数:Lucas定理
  15. 误Ghost数据恢复图文教程
  16. 我的2023届秋招之旅
  17. RuntimeError: mat1 dim 1 must match mat2 dim 0 报错解决
  18. java fadein_jQuery中fadein与fadeout方法用法示例
  19. DenseNet阅读心得体会
  20. day40 ORM sqlalchemy

热门文章

  1. 前端学习(2894):列表组件的拆分和样式编写
  2. [vue] 你有看过vue的源码吗?如果有那就说说看
  3. [css] 你知道什么是流体排版吗?说说它的原理是什么?
  4. [css] 请使用css画一个圆,方法可以多种
  5. [css] 移动端页面不满一屏时如何实现满屏背景?
  6. [css] 使用rem的优缺点是什么?和使用百分比有什么区别?
  7. [css] 如何使用css显示a链接的url?
  8. 工作169:删除操作
  9. plsql轻量版存储过程和存储函数
  10. 前端学习(1485):restful接口规则