JavaScript Date 知识浅析


Posted in Javascript onJanuary 29, 2017

Date函数

  • new Date()

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

  • date.getDate()

从 Date 对象返回一个月中的某一天 (1 ~ 31)。

  • date.getDay()

从 Date 对象返回一周中的某一天 (0 ~ 6)。周日是0。

  • date.getMonth()

从 Date 对象返回月份 (0 ~ 11)。

  • date.getFullYear()

从 Date 对象以四位数字返回年份

  • date.getHours()

返回 Date 对象的小时 (0 ~ 23)。

  • date.getMinutes()

返回 Date 对象的分钟 (0 ~ 59)。

  • date.getSeconds()

返回 Date 对象的秒数 (0 ~ 59)。

  • date.getMilliseconds()

返回 Date 对象的毫秒(0 ~ 999)。

  • date.getTime()

返回 1970 年 1 月 1 日至今的毫秒数。

  • date.getTimezoneOffset()

返回格林威治时间(GMT 或 UTC)和本地时间之间的时差,以分钟为单位。返回之所以以分钟计,而不是以小时计,原因是某些

国家所占有的时区甚至不到一个小时的间隔。

  • date.getUTCDate()

根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。

  • date.getUTCDay()

根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。周日是0。

  • date.getUTCMonth()

根据世界时从 Date 对象返回月份 (0 ~ 11)。

  • date.getUTCFullYear()

根据世界时从 Date 对象返回四位数的年份。

  • date.getUTCHours()

根据世界时返回 Date 对象的小时 (0 ~ 23)。

  • date.getUTCMinutes()

根据世界时返回 Date 对象的分钟 (0 ~ 59)。

  • date.getUTCSeconds()

根据世界时返回 Date 对象的秒钟 (0 ~ 59)。

  • date.getUTCMilliseconds()

根据世界时返回 Date 对象的毫秒(0 ~ 999)。

  • Date.parse(string)

返回1970年1月1日午夜到指定日期(字符串)的毫秒数。

  • date.setDate(int)

设置 Date 对象中月的某一天 (1 ~ 31)。返回调整过的日期的毫秒表示。

  • date.setMonth(month[, day])

设置 Date 对象中月份 (0 ~ 11)。day参数可选,表示该月的某一天介于 1 ~ 31 之间。

  • date.setFullYear(year[, month, day])

设置 Date 对象中的年份(四位数字)。month参数可选,表示月份介于 0 ~ 11 之间。day参数可选,表示该月的某一天介于 1 ~ 31 之间。

  • date.setHours(hours[, minutes, seconds, milliseconds])

设置 Date 对象中的小时 (0 ~ 23)。minutes参数可选,表示分钟数介于 0 ~ 59 之间。seconds参数可选,表示分钟数介于 0

~ 59 之间。milliseconds参数可选,表示分钟数介于 0 ~ 999 之间。

  • date.setMinutes(minutes[, seconds, milliseconds])

设置 Date 对象中的分钟 (0 ~ 59)。seconds参数可选,表示分钟数介于 0 ~ 59 之间。milliseconds参数可选,表示分钟数介于 0 ~ 999 之间。

  • date.setSeconds(seconds[, milliseconds])

设置 Date 对象中的秒钟 (0 ~ 59)。milliseconds参数可选,表示分钟数介于 0 ~ 999 之间。

  • date.setMilliseconds(int)

设置 Date 对象中的毫秒 (0 ~ 999)。

  • date.setTime(long)

设置的日期和时间据 GMT 时间 1970 年 1 月 1 日午夜之间的毫秒数。以毫秒形式表示日期可以使它独立于时区。

  • date.setUTCDate(int)

根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。

  • date.setUTCMonth(minutes[, seconds, milliseconds])

根据世界时设置 Date 对象中的月份 (0 ~ 11)。seconds参数可选,表示分钟数介于 0 ~ 59 之间。milliseconds参数可选,表

示分钟数介于 0 ~ 999 之间。

  • date.setUTCFullYear(year[, month, day])

根据世界时设置 Date 对象中的年份(四位数字)。month参数可选,表示月份介于 0 ~ 11 之间。day参数可选,表示该月的

某一天介于 1 ~ 31 之间。

  • date.setUTCHours(hours[, minutes, seconds, milliseconds])

根据世界时设置 Date 对象中的小时 (0 ~ 23)。minutes参数可选,表示分钟数介于 0 ~ 59 之间。seconds参数可选,表示分

钟数介于 0 ~ 59 之间。milliseconds参数可选,表示分钟数介于 0 ~ 999 之间。

  • date.setUTCMinutes(minutes[, seconds, milliseconds])

根据世界时设置 Date 对象中的分钟 (0 ~ 59)。seconds参数可选,表示分钟数介于 0 ~ 59 之间。milliseconds参数可选,表

示分钟数介于 0 ~ 999 之间。

  • date.setUTCSeconds(seconds[, milliseconds])

根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。milliseconds参数可选,表示分钟数介于 0 ~ 999 之间。

  • date.setUTCMilliseconds(int)

根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。

  • date.toString()

把 Date 对象转换为字符串。

  • date.toTimeString()

把 Date 对象的时间部分转换为字符串。

  • date.toDateString()

把 Date 对象的日期部分转换为字符串。

  • date.toUTCString()

根据世界时,把 Date 对象转换为字符串。

  • date.toLocaleString()

根据本地时间格式,把 Date 对象转换为字符串。

  • date.toLocaleTimeString()

根据本地时间格式,把 Date 对象的时间部分转换为字符串。

  • date.toLocaleDateString()

根据本地时间格式,把 Date 对象的日期部分转换为字符串。

  • Date.UTC(year,month,day[,hour,minute,second,milliseconds])

根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。年月日必填,时分秒毫秒都是选填的。

  • date.valueOf()

返回 Date 对象的原始值。与 Date.getTime 返回的值相等。即 1970 年 1 月 1 日至今的毫秒数。

<html>
 <head>
 <style type="text/css">
  body {
  font-size:14px;  
  }
  </style>
 </head>
 <body>
 <script type="text/javascript">
  function write(name, value) {
  document.write(name + " = " + value + "<br/>");
  }
  var date = new Date();//Date 对象会自动把当前日期和时间保存为其初始值。
  write("new Date()", date);
  write("date.getDate()", date.getDate());//从 Date 对象返回一个月中的某一天 (1 ~ 31)。
  write("date.getDay()", date.getDay());//从 Date 对象返回一周中的某一天 (0 ~ 6)。周日是0。
  write("date.getMonth()", date.getMonth());//从 Date 对象返回月份 (0 ~ 11)。
  write("date.getFullYear()", date.getFullYear());//从 Date 对象以四位数字返回年份。
  write("date.getHours()", date.getHours());//返回 Date 对象的小时 (0 ~ 23)。
  write("date.getMinutes()", date.getMinutes());//返回 Date 对象的分钟 (0 ~ 59)。
  write("date.getSeconds()", date.getSeconds());//返回 Date 对象的秒数 (0 ~ 59)。
  write("date.getMilliseconds()", date.getMilliseconds());//返回 Date 对象的毫秒(0 ~ 999)。
  write("date.getTime()", date.getTime());//返回 1970 年 1 月 1 日至今的毫秒数。
  write("date.getTimezoneOffset()/60", date.getTimezoneOffset()/60);//返回格林威治时间(GMT 或 UTC)和本地时间之间的时差,以分钟为单位。返回之所以以分钟计,而不是以小时计,原因是某些国家所占有的时区甚至不到一个小时的间隔。
  write("date.getUTCDate()", date.getUTCDate());//根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
  write("date.getUTCDay()", date.getUTCDay());//根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。周日是0。
  write("date.getUTCMonth()", date.getUTCMonth());//根据世界时从 Date 对象返回月份 (0 ~ 11)。
  write("date.getUTCFullYear()", date.getUTCFullYear());//根据世界时从 Date 对象返回四位数的年份。
  write("date.getUTCHours()", date.getUTCHours());//根据世界时返回 Date 对象的小时 (0 ~ 23)。
  write("date.getUTCMinutes()", date.getUTCMinutes());//根据世界时返回 Date 对象的分钟 (0 ~ 59)。
  write("date.getUTCSeconds()", date.getUTCSeconds());//根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
  write("date.getUTCMilliseconds()", date.getUTCMilliseconds());//根据世界时返回 Date 对象的毫秒(0 ~ 999)。
  write("Date.parse(string)", Date.parse(date.toString()));//返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
  write("date.setDate(int)", date.setDate(1));//设置 Date 对象中月的某一天 (1 ~ 31)。返回调整过的日期的毫秒表示。
  write("date.setMonth(int)", date.setMonth(0));//设置 Date 对象中月份 (0 ~ 11)。
  write("date.setFullYear(int)", date.setFullYear(2017));//设置 Date 对象中的年份(四位数字)。
  write("date.setHours(int)", date.setHours(0));//设置 Date 对象中的小时 (0 ~ 23)。
  write("date.setMinutes(int)", date.setMinutes(0));//设置 Date 对象中的分钟 (0 ~ 59)。
  write("date.setSeconds(int)", date.setSeconds(0));//设置 Date 对象中的秒钟 (0 ~ 59)。
  write("date.setMilliseconds(int)", date.setMilliseconds(0));//设置 Date 对象中的毫秒 (0 ~ 999)。
  write("date.setTime(long)", date.setTime(Date.UTC(2017,0,1)));//设置的日期和时间据 GMT 时间 1970 年 1 月 1 日午夜之间的毫秒数。以毫秒形式表示日期可以使它独立于时区。
  write("date.setUTCDate(int)", date.setUTCDate(1));//根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
  write("date.setUTCMonth(int)", date.setUTCMonth(0));//根据世界时设置 Date 对象中的月份 (0 ~ 11)。
  write("date.setUTCFullYear(int)", date.setUTCFullYear(2017));//根据世界时设置 Date 对象中的年份(四位数字)。
  write("date.setUTCHours(int)", date.setUTCHours(0));//根据世界时设置 Date 对象中的小时 (0 ~ 23)。
  write("date.setUTCMinutes(int)", date.setUTCMinutes(0));//根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
  write("date.setUTCSeconds(int)", date.setUTCSeconds(0));//根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
  write("date.setUTCMilliseconds(long)", date.setUTCMilliseconds(0));//根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
  write("date.toString()", date.toString());//把 Date 对象转换为字符串。
  write("date.toTimeString()", date.toTimeString());//把 Date 对象的时间部分转换为字符串。
  write("date.toDateString()", date.toDateString());//把 Date 对象的日期部分转换为字符串。
  write("date.toUTCString()", date.toUTCString());//根据世界时,把 Date 对象转换为字符串。
  write("date.toLocaleString()", date.toLocaleString());//根据本地时间格式,把 Date 对象转换为字符串。
  write("date.toLocaleTimeString()", date.toLocaleTimeString());//根据本地时间格式,把 Date 对象的时间部分转换为字符串。
  write("date.toLocaleDateString()", date.toLocaleDateString());//根据本地时间格式,把 Date 对象的日期部分转换为字符串。
  write("Date.UTC(year,month,day[,hour,minute,second,milliseconds])", Date.UTC(2017,0,1,0,0,0));//根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。年月日必填,时分秒毫秒都是选填的。
  write("date.valueOf()", date.valueOf());//返回 Date 对象的原始值。与 Date.getTime 返回的值相等。即 1970 年 1 月 1 日至今的毫秒数。
 </script>
 </body>
</html>

格式化Date

由于JS本身并不提供格式化日期的函数。因此必须借助prototype属性来添加自定义的日期格式化方法。

<html>
 <head>
 <meta charset="UTF8" />
 </head>
 <body>
 <script type="text/javascript">
  /*
  年(y)可以用 1-4 个占位符
  月(M)、日(d)、时(H,24时)、时(h,12时)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符
  毫秒(S)只能用 1 个占位符(是 1-3 位数字) 
  AM或PM只能用 1 个占位符(是 2 位英文)
  上午或下午(T)只能用 1 个占位符(是 2 位中文)
  星期(E)可以用 1-3 个占位符
  季度(q)只能用 1 个占位符(是 1 位数字)
  */
  Date.prototype.format = function(fmt) {
  var map = {
   "M+" : this.getMonth() + 1, //月
   "d+" : this.getDate(),  //日
   "H+" : this.getHours(),  //24时
   /*
   上午12时只代表当天上午的12时,下午的12时代表当天下午的12时,
   0时代表第二天的开始,即前面一天12时已过0时开始计算新一天的时间,
   虽然说时间上跟前面那一天下午12时重合,但日期已经发生更改,所以不能说0时就是12时
   */
   "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12,//12时
   "m+" : this.getMinutes(), //分
   "s+" : this.getSeconds(), //秒
   "S" : this.getMilliseconds(), //毫秒
   "t" : this.getHours() < 12 ? "AM" : "PM",
   "T" : this.getHours() < 12 ? "上午" : "下午",
  };
  var week = {
   "0" : "日",
   "1" : "一",
   "2" : "二",
   "3" : "三",
   "4" : "四",
   "5" : "五",
   "6" : "六",
  }
  var quarter = {
   "0" : "一",
   "1" : "二",
   "2" : "三",
   "3" : "四",
  }
  if(/(y+)/.test(fmt)) {
   fmt = fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  }
  if(/(E+)/.test(fmt)) {
   var weekPreStr;
   switch(RegExp.$1.length) {
   case 1:
    weekPreStr = "";
   break;
   case 2:
    weekPreStr = "周";
   break;
   default:
    weekPreStr = "星期";
   break;
   }
   fmt = fmt.replace(RegExp.$1, weekPreStr + week[this.getDay()]);
  }
  if(/(q)/.test(fmt)) {
   fmt = fmt.replace(RegExp.$1, quarter[Math.floor(this.getMonth() / 3)]);
  }
  for(var key in map) {
   if(new RegExp("(" + key + ")").test(fmt)) {
   fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? map[key] : ("00" + map[key]).substr((map[key]+"").length));
   }
  }
  return fmt;
  }
  function write(str) {
  document.write(str + "<br/>");
  }
  var date = new Date();
  write(date.toString());
  write(date.toUTCString());
  write(date.toLocaleString());
  write("");
  write(date.format("yy-M-d t h:m:s.S"));
  write(date.format("yyyy-MM-dd hh:mm:ss.S"));
  write(date.format("yyyy-MM-dd E HH:mm:ss"));
  write(date.format("yyyy-MM-dd EE hh:mm:ss"));
  write(date.format("yyyy-MM-dd EEE hh:mm:ss"));
  write(date.format("yyyy年MM月dd日 EEE hh:mm:ss 第q季度"));
 </script>
 </body>
</html>

对Date设置超出范围的参数

即使设置了超出范围的参数也不会报错,只会计算“最大合法值”与“超出值”相加得到的date。

<html>
 <body>
 <script type="text/javascript">
  var date = new Date();
  date.setFullYear(2016,12,32, 0, 0, 0);
  document.write(date);
 </script>
 </body>
</html>

JavaScript Date 知识浅析

增减Date

<html>
 <body>
 <script type="text/javascript">
  var date = new Date();
  date.setFullYear(2017,0,1, 0, 0, 0);
  document.write("date = " + date + "<br/>");
  date.setDate(date.getDate()+5);
  document.write("after date + 5, date = " + date + "<br/>");
  date.setDate(date.getDate()-10);
  document.write("after date - 10, date = " + date + "<br/>");
 </script>
 </body>
</html>

JavaScript Date 知识浅析

比较Date

<html>
 <head>
 <meta charset="UTF8" />
 </head>
 <body>
 <script type="text/javascript">
  var date1 = new Date();
  var date2 = new Date();
  date1.setTime(Date.UTC(2017,0,1));
  date2.setTime(Date.UTC(2016,11,31));
  document.write("date1 = " + date1.toLocaleString() + "<br/>");
  document.write("date2 = " + date2.toLocaleString() + "<br/>");
  document.write("date1 - date2 = " + (date1 - date2) + "毫秒<br/>");
  document.write("date1 - date2 = " + (date1 - date2)/1000/60/60 + "小时<br/>");
  document.write("date1 > date2 = " + (date1 > date2) + "<br/>");
  document.write("date1 < date2 = " + (date1 < date2) + "<br/>");
 </script>
 </body>
</html>

JavaScript Date 知识浅析

以上所述是小编给大家介绍的JavaScript Date 知识浅析,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
百度 popup.js 完美修正版非常的不错 脚本之家推荐
Apr 17 Javascript
JS 参数传递的实际应用代码分析
Sep 13 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
May 13 Javascript
express的中间件cookieParser详解
Dec 04 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
Jun 01 Javascript
带有定位当前位置的百度地图前端web api实例代码
Jun 21 Javascript
Select下拉框模糊查询功能实现代码
Jul 22 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
Vue.js原理分析之observer模块详解
Feb 17 Javascript
vue-cli 首屏加载优化问题
Nov 06 Javascript
JavaScript实现时钟滴答声效果
Jan 29 #Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
Jan 29 #Javascript
jQuery图片轮播功能实例代码
Jan 29 #Javascript
jQuery代码实现实时获取时间
Jan 29 #Javascript
用director.js实现前端路由使用实例
Jan 27 #Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 #Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
Jan 26 #Javascript
You might like
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
php获取随机数组列表的方法
2014/11/13 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python交互式图形编程的实现
2019/07/25 Python
Python的条件锁与事件共享详解
2019/09/12 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
干部培训自我鉴定
2014/01/22 职场文书
大学军训感想
2014/02/12 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
团队精神口号
2014/06/06 职场文书
绿色小区申报材料
2014/08/22 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
Python采集股票数据并制作可视化柱状图
2022/04/04 Python