为什么80%的码农都做不了架构师?>>>   

在前端代码中难免会涉及到时间的操作,如何构造一个Date对象呢?javascript为我们提供如下几种方式:

    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);

其中:

  • month:用英文表示月份名称,从January到December
  • mth:用整数表示月份,从0(1月)到11(12月)
  • dd:表示一个月中的第几天,从1到31
  • yyyy:四位数表示的年份
  • hh:小时数,从0(午夜)到23(晚11点)
  • mm:分钟数,从0到59的整数
  • ss:秒数,从0到59的整数
  • ms:毫秒数,为大于等于0的整数

构造函数中部分参数为负数的情况:

>new Date(1990,11,-1)
>Thu Nov 29 1990 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,10,-1)
>Tue Oct 30 1990 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,10,-2)
>Mon Oct 29 1990 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,-1,-2)
>Tue Nov 28 1989 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,-1,0)
>Thu Nov 30 1989 00:00:00 GMT+0800 (中国标准时间)

上面的结果,你可能会有疑惑,不急,且跟我一起往下看:

在月份小于0时,构造函数会在月份为0的基础上,向上X月,如:

new Date(2015,-1,1) Mon Dec 01 2014 00:00:00 GMT+0800 (中国标准时间)

在日小于1时,构造函数会在天数为1的基础上,向上X天,如:

new Date(2015,0,0) Wed Dec 31 2014 00:00:00 GMT+0800 (中国标准时间)

如果两者都为负数,可以先计算月,再计算日,得出正确结果,如:

new Date(2015,-1,0) Sun Nov 30 2014 00:00:00 GMT+0800 (中国标准时间)

如果月大于11,日大于当月天数,自动向后推移,如(2015年2月份只有28天):

new Date(2015,1,29) Sun Mar 01 2015 00:00:00 GMT+0800 (中国标准时间)

也就是说在开发过程中,我们完全可以使用new Date(yyyy,mm,dd)构造函数提供的这一特性,完成上一日,下一日,上一月,下一月这样的日期操作。

上一日:

new Date(yyyy,mm,dd-1)

下一日:

new Date(yyyy,mm,dd+1)

上一月:

new Date(yyyy,mm-1,dd)

下一月:

new Date(yyyy,mm+1,dd)

在IE9、Chrome及Firefox浏览器实测通过。 Date对象的其他方法

转载于:https://my.oschina.net/benwen/blog/368067

javascript中Date对象的初始化方法相关推荐

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

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

  2. javascript中Date对象及方法

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

  3. Javascript中Date对象的使用

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

  4. java getday_javascript中Date对象的getDay方法使用指南

    Date对象有个getDay方法,它根据本地时间,返回一个具体日期中一周的第几天.返回值从0~6,分别对应周日~周六 getDay 0 1 2 3 4 5 6 星期几 周日 周一 周二 周三 周四 周 ...

  5. 在js中Date对象用getDay方法get到的是个啥玩意儿?

    懒得写日期加减的逻辑,于是在网上随便拷贝了个代码进来,结果,我输入2020-04-29,加三个月后get到的却是2020-06-03 开始还没有发现问题在哪,结果是getDay的问题,所以这到底get ...

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

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

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

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

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

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

  9. JavaScript 中的对象拷贝(深拷贝、浅拷贝)

    对象是 JavaScript 的基本块.对象是属性的集合,属性是键值对.JavaScript 中的几乎所有对象都是位于原型链顶部 Object 的实例. 介绍 如你所知,赋值运算符不会创建一个对象的副 ...

最新文章

  1. 概率编程库Pymc3案例之神经网络
  2. 在.Net中使用log4Net
  3. oracle rac数据库特点,Oracle RAC集群结构的特点和缺点
  4. NYOJ-苹果(dp)
  5. scala基本类型和成员定义
  6. thinkphp5 异步调用方法_详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
  7. list,set,map,数组之间的相互转换详细解析
  8. 学python lesson1
  9. odbc oracle数据源配置文件,MB中使用Oracle ODBC数据源的配置帮助
  10. 使用c#制作赛尔号登录器
  11. 二阶高通有源滤波器设计与仿真测试
  12. ubuntu chm文档阅读
  13. loadrunner在win7破解提示:Cannot save the license information because acceses to the registry is denied的解
  14. Gzip的动态压缩和静态压缩详解
  15. 聊聊云原生时代湖仓一体建设
  16. 安卓语音识别(RecognizerIntent)
  17. 『每周译Go』GitHub 为 Go 社区带来供应链安全功能
  18. 技术人员如何快速提高管理能力和领导力
  19. 从项目管理角度看马谡失街亭
  20. Drynx: 基于区块链的去中心化隐私保护机器学习系统

热门文章

  1. c#和WIN32 调用
  2. Android监听事件
  3. U-Boot顶层Makefile分析
  4. udhcpd配置及使用
  5. delphi7存取配置文件与sqlserver数据库连接_Delphi7存取配置文件与SQLServer数据库连接...
  6. search engine php,用php简单实现search engine friendly的url_php技巧
  7. 远程工具:MobaXterm使用图文教程
  8. 后端技术:Spring Boot 项目优化和 JVM 调优,真实有效。
  9. Syncd - 开源自动化部署工具
  10. SQL命令大全-中英文对照