javascript 玩转Date对象(实例讲解)


Posted in Javascript onJuly 11, 2017

前言:最近在做一个日期选择功能,在日期转换的时候经常换到晕,总结一下常用的Date对象的相关用法,方便日后直接查看使用~

1. new Date()的使用方法有:

不接收任何参数:返回当前时间;

接收一个参数x: 返回1970年1月1日 + x毫秒的值。

new Date(1, 1, 1)返回1901年2月1号。
new Date(2016, 1, 1)不会在1900年的基础上加2016,而只是表示2016年2月1号。

2. 使用new Date(time) 将时间转换成 Date 对象

注意:time格式需要为 1999/12/31 23:59 (不能为1999-12-30 23:43),否则在一些机型下可能会报错。

3. date对象一些常用的api

new Date()转换之后的数据,可以直接使用下面的api
new Date(x).getMonth()+1  //获取月份
new Date(x).getDate //获取日期
new Date(x).getHours() //获取小时
new Date(x).getMinutes() //获取分钟
new Date(x).toLocaleDateString()); // 转换为本地日期格式,视环境而定,输出:2017年07月04日
new Date(x).toLocaleString()); // 转换为本地日期和时间格式,视环境而定,输出:2017年07月04日 上午10:03:05

4. javascript 没有原生提供但却经常需求使用的功能

根据日期获取当前星期几

//参数 日期
getWeek(day) {
  const weekArr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  return weekArr[day];
}
getWeek(new Date(x).getDay())

获取某个时间+1个小时,直接对小时数进行加1可能会溢出,因此先转换成 Date 对象,再使用setHours 改变小时。

new Date(x).setHours(new Date(x).getHours()+1,new Date(x).getMinutes());

为了统一格式,返回日期是10以下,需在前面补0.

function getFull(n) {
  return (n > 9 ? '' : '0') + n;
}
var x = getFull(3); //03
var y = getFull(11);  //11

经常要对日期进行转换,因此增加一个转换格式的函数

Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
      "M+": this.getMonth() + 1, //月份
      "d+": this.getDate(), //日
      "h+": this.getHours(), //小时
      "m+": this.getMinutes(), //分
      "s+": this.getSeconds(), //秒
      "q+": Math.floor((this.getMonth() + 3) / 3), //季度
      "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
      if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
  }
  // 调用:
  var time1 = new Date().Format("yyyy-MM-dd");
  var time2 = new Date().Format("yyyy-MM-dd hh:mm:ss");

以上这篇javascript 玩转Date对象(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript传递变量: 值传递?引用传递?
Feb 22 Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
jQuery 三击事件实现代码
Sep 11 Javascript
自定义的一个简单时尚js下拉选择框
Nov 20 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
Dec 31 Javascript
JavaScript学习笔记之JS事件对象
Jan 22 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
JavaScript html5 canvas绘制时钟效果(二)
Mar 27 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
Vue.js tab实现选项卡切换
May 16 Javascript
vue的diff算法知识点总结
Mar 29 Javascript
使用jQuery实现动态添加小广告
Jul 11 #jQuery
Vue中父组件向子组件通信的方法
Jul 11 #Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
Jul 11 #Javascript
网页中的图片查看器viewjs使用方法
Jul 11 #Javascript
自定义事件解决重复请求BUG的问题
Jul 11 #Javascript
关于js中的鼠标事件总结
Jul 11 #Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
Jul 10 #Javascript
You might like
随机头像PHP版
2006/10/09 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
浅谈php处理后端&接口访问超时的解决方法
2016/10/29 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python使用range函数计算一组数和的方法
2015/05/07 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
python http接口自动化脚本详解
2018/01/02 Python
使用python模拟高斯分布例子
2019/12/09 Python
Python实现图像的垂直投影示例
2020/01/17 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
写求职信有哪些注意事项
2014/05/08 职场文书
2015年教师国培感言
2015/08/01 职场文书
春节随笔
2015/08/15 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers