在JavaScript中,Date对象用来表示日期和时间。

要获取系统当前时间,用:

var now = new Date();
now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
now.getFullYear(); // 2015, 年份
now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月
now.getDate(); // 24, 表示24号
now.getDay(); // 3, 表示星期三
now.getHours(); // 19, 24小时制
now.getMinutes(); // 49, 分钟
now.getSeconds(); // 22, 秒
now.getMilliseconds(); // 875, 毫秒数
now.getTime(); // 1435146562875, 以number形式表示的时间戳

注意,当前时间是浏览器从本机操作系统获取的时间,所以不一定准确,因为用户可以把当前时间设定为任何值。

如果要创建一个指定日期和时间的Date对象,可以用:

var d = new Date(2015, 5, 19, 20, 15, 30, 123);
d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)

你可能观察到了一个非常非常坑爹的地方,就是JavaScript的月份范围用整数表示是0~11,0表示一月,1表示二月……,所以要表示6月,我们传入的是5!这绝对是JavaScript的设计者当时脑抽了一下,但是现在要修复已经不可能了。

第二种创建一个指定日期和时间的方法是解析一个符合ISO 8601格式的字符串:

var d = Date.parse('2015-06-24T19:49:22.875+08:00');
d; // 1435146562875

但它返回的不是Date对象,而是一个时间戳。不过有时间戳就可以很容易地把它转换为一个Date

var d = new Date(1435146562875);
d; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
d.getMonth(); // 5

时区

Date对象表示的时间总是按浏览器所在时区显示的,不过我们既可以显示本地时间,也可以显示调整后的UTC时间:

var d = new Date(1435146562875);
d.toLocaleString(); // '2015/6/24 下午7:49:22',本地时间(北京时区+8:00),显示的字符串与操作系统设定的格式有关
d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC时间,与本地时间相差8小时

那么在JavaScript中如何进行时区转换呢?实际上,只要我们传递的是一个number类型的时间戳,我们就不用关心时区转换。任何浏览器都可以把一个时间戳正确转换为本地时间。

时间戳是个什么东西?时间戳是一个自增的整数,它表示从1970年1月1日零时整的GMT时区开始的那一刻,到现在的毫秒数。假设浏览器所在电脑的时间是准确的,那么世界上无论哪个时区的电脑,它们此刻产生的时间戳数字都是一样的,所以,时间戳可以精确地表示一个时刻,并且与时区无关。

所以,我们只需要传递时间戳,或者把时间戳从数据库里读出来,再让JavaScript自动转换为当地时间就可以了。

要获取当前时间戳,可以用:

if (Date.now) {console.log(Date.now()); // 老版本IE没有now()方法
} else {console.log(new Date().getTime());
}

转载于:https://www.cnblogs.com/nature-tao/p/9475227.html

javascript基础知识(13) Date相关推荐

  1. JavaScript基础知识(Date 的方法)

    Date 的方法 console.log(typeof Date);// "function" Date的实例 console.log(typeof new Date()); // ...

  2. JavaScript基础知识与脚本语言总结

    1 Aptana插件安装 1.Aptana插件安装 <1>Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE. <2>它的特点包括: J ...

  3. JavaScript 基础知识 - 入门篇(二)

    11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...

  4. javascript基础知识大全

    发些javascript基础知识,便于大家学习,也便于我自己查看  1.javascript的数组API  [js]  <pre>//定义数组  var pageIds = new Arr ...

  5. JavaScript基础知识(—)

    JavaScript基础知识(-) **1.**alert()警告框 prompt()可以让用户输入内容 confirm()提示用户并做选择 可以用来做判断 点击确认就是true 取消false ** ...

  6. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

  7. JavaScript 基础知识 - BOM篇

    前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...

  8. JavaScript 基础知识 - DOM篇(二)

    7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...

  9. Javascript基础知识之四(常用数组方法)

    一.MDN链接 Array - JavaScript | MDNJavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象.https://developer.moz ...

最新文章

  1. Spring Boot 返回 JSON 数据,一分钟搞定!
  2. python中的zip()函数和map()函数
  3. 各大浏览器CSS Hack收集
  4. npm run dev 报错echarts
  5. 官方原版美化修改版完美适配双端海洋cms模板
  6. Listview条目删除完,显示默认的图片的数据
  7. ES6_symbol和generator_note
  8. linux 1060显卡,Steam最受欢迎显卡型号出炉:GTX 1060显卡的占有率依然排名第一
  9. Linux系统安全加固策略(二)
  10. 125. 如何修改PHP的memory_limit限制
  11. 验证码识别库 python_python 验证码识别库pytesseract的使用
  12. 复制 在div层加滚动条
  13. 五大媒体播放器的Andr​​oid
  14. 国内机器人编程赛事大全介绍
  15. ES RestClient查询文档
  16. ImageJ -介绍与安装
  17. 计算机课件 flash,计算机实用技术教学课件 刘毅 第8章 Flash动画制作.ppt
  18. 为linux下ibus添加五笔98输入法过程详解
  19. Android View事件传递机制
  20. Hadoop-1-大数据概述

热门文章

  1. drools 将添加switch支持
  2. MySQL:Specified key was too long; max key length is 1000 bytes
  3. php开发_图片验证码
  4. 360云盘直链解析PHP,360云盘分析直链解析
  5. Custom UDP Packet Wrapper
  6. 疑似Bug:简书安卓10.7首页搜索关键字屏蔽敏感词不彻底
  7. 图解java_图解 Java 中的数据结构及原理!
  8. WebAppBuilder自定义主题
  9. Netty之大动脉Pipeline
  10. 常用JQuery插件整理 1