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 相关文章推荐
给jqGrid数据行添加修改和删除操作链接(之一)
Nov 04 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
JavaScript的作用域和块级作用域概念理解
Sep 21 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
Aug 07 Javascript
易操作的jQuery表单提示插件
Dec 01 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
vue项目使用微信公众号支付总结及遇到的坑
Oct 23 Javascript
微信二次分享报错invalid signature问题及解决方法
Apr 01 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
Vue实现购物车详情页面的方法
Aug 20 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
PHP中的正则表达式函数介绍
2012/02/27 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
jquery replace方法去空格
2017/05/08 jQuery
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
python 删除大文件中的某一行(最有效率的方法)
2017/08/19 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
飘柔洗发水广告词
2014/03/14 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
2014年工人工作总结
2014/11/25 职场文书
2014年度思想工作总结
2014/11/27 职场文书
辞职申请书范本
2019/05/20 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
go xorm框架的使用
2021/05/22 Golang
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL