js中的date函数,js date构造函数

http://www.itjxue.com  2023-01-04 15:45  来源:未知  点击次数: 

JS Time与Date

创建一个日期对象,使用new运算符和Date构造方法(构造函数)即可。

Date.parse()和Date.UTC(),返回字符串相对应的毫秒数。

如果Date.parse()没有写入内容或者不是标准的日期格式,那么就会返回NaN。

如果想输出指定的日期,把Date.parse()传入Date构造方法里。

Date.UTC()方法也是返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息。(年份,基于0的月份[0表示1月,1表示2月],月中的哪一天[1-31],小时数[0-23],分钟,秒以及毫秒)。

只有前两个参数是必须的。如果没有提供月数,则天数为1;如果省略其他参数,则统统为0。

Date类型还有一些专门用于将日期格式化为字符串的方法。

组件方法:是为单独获取想要的时间/日期而提供的方法。(注意:这些方法中,有带UTC的,有不带UTC的。UTC日期指的是在没有时区偏差的情况下的日期值。)

方法名 说明

JavaScript 中 Date() 和New Date()有什么区别?

var?d1=Date();????????//返回一个字符串(string),没有getDate等日期对象方法,内容为当前时间

var?d2=new?Date();????//返回一日期对象,可以调用getDate(),内容为当前时间

var?d3=Date("2000-1-1");//返回一个字符串(string),内容仍旧为当前时间,也就是不受参数影响

var?d4=new?Date("2000-1-1");//返回一日期对象,可以调用getDate(),内容为2000年元旦

js里的Date()支持什么样的日期格式吗?

var

date=new

date(yyyy,mth,dd);

如果你指定日期字符串,那么就把前四个放在yyyy那里,然后是逗号",",mth:用整数表示月份,从0(1月)到11(12月),你这个是12月,就用11,dd:表示一个月中的第几天,从1到31。

你这个就应该是var

date=new

date(2011,11,31);

js里的Date()支持什么样的日期格式?

Date

对象用于处理日期和时间。

创建

Date

对象的语法:

var

myDate=new

Date()

Date

对象会自动把当前日期和时间保存为其初始值。

参数形式有以下5种:

new

Date("month

dd,yyyy

hh:mm:ss");

new

Date("month

dd,yyyy");

new

Date(yyyy,mth,dd,hh,mm,ss);

new

Date(yyyy,mth,dd);

new

Date(ms);

注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:

month:用英文表示月份名称,从January到December

mth:用整数表示月份,从(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);

js里面的new date问题

了解了一下Date()函数在作为构造函数时的解析日期字符串参数的规则,感觉最佳答案个人觉得并不是很全面,所以这里写一下自己的看法。

Date()函数像题主的这种用法,即作为构造函数使用,当传入日期字符串的时候,内部其实会调用Date.parse()方法解析日期字符串,根据MDN文档的说法,该日期字符串的要求是“符合 RFC2822 或 ISO 8601 日期格式的字符串(其他格式也许也支持,但结果可能与预期不符)”。像'2018-09-13'这种就是ISO 8601的日期格式,文档中有说明对于ISO 8601日期格式的处理说明:“如果参数字符串只包含日期格式,那么将会使用UTC时区来解析该参数。而如果是ISO 8601 格式中规定的时间加日期的格式,则将会被作为本地时区处理”。

这句话简单的理解就是如果你传的字符串参数不包含时间,那么则表示的是中时区(零时区,本初子午线)的0点0分0秒,转换成北京时间(东八区)自然就得加8个小时咯,所以new Date('2018-09-13')返回的是“Thu Sep 13 2018 08:00:00 GMT+0800 (中国标准时间)”。根据上面的那句话,new Date('2018-09-13T08:00:00')应该与'2018-09-13'返回的是一样的结果,测试确实如此,因为加上时间的话,就会作为本地时区处理。

而“2018/09/13”这种不包含时间的日期格式(并不属于ISO 8601格式,属于什么标准自行了解,我也不懂),显然是直接当做本地时间处理了。你只需要记住,当使用ISO 860即'2018-09-13'这种格式的日期字符串的时候,记得要把时间补全,即便是零,例如new Date('2018-09-13T00:00:00')。

(责任编辑:IT教学网)

更多

推荐CSS教程文章