new Date参数问题
new Date支持的参数:
MDN:
new Date();
new Date(value);
new Date(dateString);
new Date(year, month, day, hour, minute, second, millisecond);
MSDN:
dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
不过在MSDN中把dateVal看成了MDN中参数为value和dateString的合集。实际上是一样的。
对于无参数和多参数的使用方法除了month参数是从0开始计算之外没有什么特殊用法。
如果参数为数字时代表从1970年1月1日算起的毫秒数:Integer value representing the number of milliseconds since 1 January 1970 00:00:00 UTC (Unix Epoch)。最麻烦,但是使用起来也是最方便的字符串参数,在MDN中:
The string should be in a format recognized by theDate.parse() method (IETF-compliant RFC 2822 timestamps and also a version of ISO8601).
在MSDN中:
dateVal is parsed according to the rules in Date and Time Strings (JavaScript). The dateVal argument can also be a VT_DATE value as returned from some ActiveX objects.
一句话来说,就是对于通过JS Date对象以及相关方法(UTC、ISO、GMT等)生成的各种字符串都可以解析。除此之外,常用的使用方法如下:
/*需要注意:月份此时从1开始计算*/
new Date("2014-04-11"); // Fri Apr 11 2014 08:00:00 GMT+0800 (中国标准时间)
注:该方式不推荐,因为在windows下的safari 5及以下版本不能正确解析,会返回NaN。而在Mac下的Safari则没有此问题。不过如果忽略安装Safari的windows用户,这个方法也不错。
一般我们可能使用new Date(YYYY,MM,DD)或者set方法来创建对象,不过通过set方法在某些特殊日期下会出错:
/*bad!*/ var date = new Date(2014,2,30); // Fri Mar 30 2014 00:00:00 GMT+0800 (中国标准时间)
date.setMonth(1); // Fri Mar 2 2014 00:00:00 GMT+0800 (中国标准时间)
date.setDate(28); // Fri Mar 28 2014 00:00:00 GMT+0800 (中国标准时间) var date = new Date(2014,1,28); // Fri Feb 28 2014 00:00:00 GMT+0800 (中国标准时间)
date.setDate(30); // Sun Mar 02 2014 00:00:00 GMT+0800 (中国标准时间)
date.setMonth(3); // Wed Apr 02 2014 00:00:00 GMT+0800 (中国标准时间) /*better!*/ var dateNew = new Date(2014,1,28); // Fri Feb 28 2014 00:00:00 GMT+0800 (中国标准时间)
var dateNew2 = new Date(2014,3,30); // Wed Apr 30 2014 00:00:00 GMT+0800 (中国标准时间)
PS: ISO Date Format is not supported in Internet Explorer 8 standards mode and Quirks mode.
参考文章:
1、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
2、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
3、http://tools.ietf.org/html/rfc2822#page-14
4、http://www.w3.org/TR/NOTE-datetime
5、http://msdn.microsoft.com/en-us/library/ie/cd9w2te4(v=vs.94).aspx
6、http://msdn.microsoft.com/en-us/library/ie/ff743760(v=vs.94).aspx
7、http://www.php100.com/manual/Javascript/html/jsobjdate.htm
new Date参数问题的更多相关文章
- date 参数(option)-d
记录这篇博客的原因是:鸟哥的linux教程中,关于date命令的部分缺少-d这个参数的介绍,并且12章中的shell编写部分有用到-d参数 date 参数(option)-d与--date=" ...
- js new Date()参数格式
最近在写页面使用new Date()获取时间戳在ie浏览器中测试发现无效:后来发现是参数格式问题, new Date()参数格式如下: 1.用整数初始化日期对象 var date1 = new Dat ...
- PHP 时间函数 date 参数详解
time();表示的是从1970-01-01到现在共走了多少秒,不便于看,但便于计算 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就是 time()*60*60*24* ...
- springboot处理date参数
前言 最近在后台开发中遇到了时间参数的坑,就单独把这个问题提出来找时间整理了一下: 正文 测试方法 bean代码: public class DateModelNoAnnotation { priva ...
- js获取时间戳(new date()参数获取)
当获取截止到某一个时间点的时间戳时: 例如:到 2018-03-15 11:03:55 这个时间点的时间戳的时候 正确的写法: var data = new Date("2018/03/15 ...
- new Date()的参数
前两天发现手机页面的倒计时在Android上正常显示,在iPhone却不能显示. 后来又发现在ff和ie里也不显示.(以前只在chrome里看过,显示正常). 后来同事改了new Date()里字符串 ...
- 前端学习笔记系列一:13new Date()的参数
前两天发现手机页面的倒计时在Android上正常显示,在iPhone却不能显示. 后来又发现在ff和ie里也不显示.(以前只在chrome里看过,显示正常). 后来同事改了new Date()里字符串 ...
- salesforce 零基础学习(十六)Validation Rules & Date/time
上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...
- 每天一个linux命令(37):date命令
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
随机推荐
- Android新浪微博客户端(六)——Home界面的ListView
原文出自:方杰|http://fangjie.info/?p=184转载请注明出处 最终效果演示:http://fangjie.info/?page_id=54该项目代码已经放到github:http ...
- [Linux] 流 ( Stream )、管道 ( Pipeline ) 、Filter - 笔记
流 ( Stream ) 1. 流,是指可使用的数据元素一个序列. 2. 流,可以想象为是传送带上等待加工处理的物品,也可以想象为工厂流水线上的物品. 3. 流,可以是无限的数据. 4. 有一种功能, ...
- HTTP学习实验8-windows添加telnet功能
Windows 添加telnet功能: 控制面板->(查看方式:小图标)->程序和功能->打开或关闭Windows功能->Telnet客户端 Telnet 设置: 打开cmd, ...
- Jenkins,Maven及TestNG在自动化测试的应用(转)
转自:http://qa.blog.163.com/blog/static/190147002201581634549893/ 希望实现的场景:Jenkins中的Job可针对不同浏览器,不同环境,运行 ...
- Hibernate 入门的第一个程序
一. Hibernate介绍 Hibernate是基于对象/关系映射(ORM,Object/Relational Mapping)的一个解决方案.ORM方案的思想是将对象模型表示的对象映射到关 ...
- mongodb3.0 性能測试报告 一
mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver 共6台 cpu: 单颗8核 ...
- Robotium API -- 除click/clickLong外的其他操作
拖动操作 void drag (float fromX, float toX, float fromY, float toY, int stepCount) 选定两个位置,进行拖动操作(这里的拖动操作 ...
- JAVA WEB实现前端加密后台解密
最近在研究登陆密码的加密,下边上具体代码,只是给出核心代码,具体的代码视业务而定吧,给位有什么问题或者意见请留言. 加密方法用的是AES-128-CBC,BASE64用的是org.apache.com ...
- 【移动开发】Android中WIFI开发总结(二)
搞了好几天终于有点眉目了,这里接着总结一下Android中WiFi的使用,在前面(http://smallwoniu.blog.51cto.com/3911954/1334951)我们已经简单了解了W ...
- Counting Lines, Words, and Characters with wc
Counting Lines, Words, and Characters with wc When working with text files, you sometimes get a ...