为什么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. 53亿美元,今年最大一笔杠杆并购案!为什么会是它?
  2. 2020-08-07 光纤通信第二章知识点整理
  3. 几行Python代码,爱上Python编程
  4. 1137.第N个泰波那契数
  5. vscode 连接服务器jupyter_VScode中使用jupyter notebook
  6. Netty in action—第一个Netty应用
  7. 主机甲采用停等协议向主机乙_TCP/IP 协议——详解篇
  8. 【车牌识别】基于matlab GUI模板匹配车牌识别【含Matlab源码 958期】
  9. C语言考试上机操作题库(基础)(参考)
  10. sxos中文官网_Canva中文官网下载-Canva中文版下载安装v2.83.0
  11. 用计算机算标准曲线,标准曲线计算软件
  12. Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?
  13. 技术经理成长复盘-处理线上问题
  14. 有AI就不搬砖?超乎你的想象!道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  15. 图标显示方框问题的一种原因
  16. 计算机图形学6--讨论多边形
  17. viper4android+2.6,ViPER4Androi安卓音效驱动
  18. 【华为重启门】华为/荣耀手机一直自动重启原因解决方案(荣耀V10)
  19. java字符串数组转数字数组_Java数字字符串如何转化为数字数组并且排序
  20. 网络中数据的封装与解封装

热门文章

  1. 第五章 Response(JavaTM Servlet 规范3.1 )
  2. hdu.1430.魔板(bfs + 康托展开)
  3. html5中的一些标签学习总结
  4. Csharp+Asp.net系列教程(四)
  5. Github的简单使用
  6. 2 什么是计算机网络设置密码,计算机网络技术及应用(第2版)第6章网络操作系统基本配置.ppt...
  7. java -XX:+PrintFlagsInitial该命令可以查看所有JVM参数启动的初始值
  8. android底部导航栏svg,vue开发移动端底部导航条功能
  9. MYSQL中where子句与having子句的区别
  10. Java技术:项目构建工具Maven最佳替代者gradle介绍