曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2667|回复: 0
打印 上一主题 下一主题

Date 对象

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2011-12-14 01:00:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于 JavaScript 没有基本的日期数据类型,所以只能显式地创建 Date 对象,方法如下:
var today = new Date();
如果希望一开始时就设定特定日期或时间,那么可以直接指定:
[JavaScript] 纯文本查看 复制代码
<script type="text/javascript">
        var mydate = new Date( "13 Dec 2011 23:58:00" );
        document.write( mydate );
    </script>


运行后,可能会看到类似下面的信息(浏览器不同而显示结果稍有区别,这里是 Chrome 的输出):
Tue Dec 13 2011 23:58:00 GMT+0800 (中国标准时间)
上面 Date 中括号里的时间不同的国家有不同的顺序,中国的习惯是 YY/MM/DD ,美国的习惯是 MM/DD/YY,欧洲的习惯是 DD/MM/YY 。


如果使用简写的名字来指定月份(如 Jan,Dec 等),则可以指定任意的顺序:
[code=javascript]
var someDate = new Date( "13 Dec 2011" );
var someDate = new Date( "Dec 13 2011" );
var someDate = new Date( "2011 13 Dec" );[/mw_shl_code]



实际上,Date 对象还有许多参数:
var someDate = new Date( aYear, aMonth, aDate, anHour, aMinute, aSecond, aMillisecond )
注意,上面括号里的参数都分别用逗号隔开,而不是放在一对双引号里整个指定。如果按照上面的形式使用参数,那么就必须按照顺序逐个指定,比如可以:
var mydate = new Date( 2011, 11, 14, 23 );
而不能:
var mydate = new Date( 2011, 11, , 23 );


还有一个地方需要注意的是:JavaScript 是从 0 开始计算月份的,如果上面指定的是:
var mydate = new Date( 2011, 12, 13, 23 );
那么就会显示成:
Fri Jan 13 2012 23:00:00 GMT+0800 (中国标准时间)
这样就跳到 2012 年的 1 月份中去了。


测试代码
[JavaScript] 纯文本查看 复制代码
//创建一个新的 date 对象
    var mydate = new Date( "14 Dec 2011 0:21");
    
    //获取时间元素(分钟,年,月,日)
    document.write( "Minutes = " + mydate.getMinutes() + "<br>" );
    document.write( "Year = " + mydate.getFullYear() + "<br>" );    
    document.write( "Month = " + mydate.getMonth() + "<br>" );
    document.write( "Date = " + mydate.getDate() + "<br>" );


相应于 getMinutes() 中的 get 是获得分钟,那么要设置分钟则是 setMinutes(),设置天数是 setDate() 等等。



可以使用 toString() 方法将一个 Date 对象里的时间元素转换为字符串输出,如下面的测试代码:
[code=javascript]<script type="text/javascript">
    //提示用户输入一个时间
    var originalDate = prompt( "Enter a date (Day, Name of the Month, Year)", "31 Dec 2011" );
    
    //使用新的日期覆盖原始的日期
    var originalDate = new Date( originalDate );
    
    //提示用户输入需要增加的天数
    var addDays = Number( prompt( "Enter number of days to be added", "1" ) );
    
    //设置一个新的天数
    originalDate.setDate( originalDate.getDate() + addDays );
    
    document.write( originalDate.toString() );
    </script>[/mw_shl_code]
运行后在确认两个对话框中的内容后输出:
Sun Jan 01 2012 00:00:00 GMT+0800 (中国标准时间)
上面程序是为原始时间再增加一天,然后输出变更后的日期。

如果将上面的 toSring() 方法改成 toDateString() ,那么会产生好一个格式化好的字符串,比如:
Sun Jan 01 2012
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-16 16:59 , Processed in 0.068352 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表