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 相关文章推荐
js打印纸函数代码(递归)
Jun 18 Javascript
JS OffsetParent属性深入解析
Jan 13 Javascript
浅谈javascript的调试
Jan 28 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 Javascript
JavaScript实现简单图片翻转的方法
Apr 17 Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
Javascript基础_简单比较undefined和null 值
Jun 14 Javascript
详解vuejs之v-for列表渲染
Jun 22 Javascript
微信小程序分页加载的实例代码
Jul 11 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
Aug 28 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
Oct 15 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
生成sessionid和随机密码的例子
2006/10/09 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
python实现的希尔排序算法实例
2015/07/01 Python
Python pandas常用函数详解
2018/02/07 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
python绘制封闭多边形教程
2020/02/18 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
捷科时代的软件测试笔试题
2015/11/09 面试题
《骆驼和羊》教学反思
2014/02/27 职场文书
《小池塘》教学反思
2014/02/28 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
远程教育培训心得体会
2016/01/09 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
python b站视频下载的五种版本
2021/05/27 Python