视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
javascript--Date对象
2020-11-27 20:16:38 责编:小采
文档

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

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

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

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

  3. new Date(1, 1, 1)返回1901年2月1号。

  4. 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()转换之后的数据,可以直接使用下面的apinew 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); //03var y = getFull(11); //11
  • 经常要对日期进行转换,因此增加一个转换格式的函数

  • Date.prototype.Format = function (fmt) { //author: meizzvar 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");

    下载本文
    显示全文
    专题