js日期拓展方法
最近项目中使用了大量关于日期的操作遂将其整理如下:
/**
* 格式化日期
* @param {String} fmt [日期类型 默认为年月日(yyyy-MM-dd)]
*/
Date.prototype.format = function (fmt = 'yyyy-MM-dd') {
var date = {
"y+": this.getFullYear(),
"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 key in date) {
if (new RegExp("(" + key + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (date[key]) : (("00" + date[key]).substr(("" + date[key]).length)));
}
}
return fmt;
}
/**
* 返回带有时区的时间
* @param {String} fmt [日期类型 默认为年月日(yyyy-MM-dd hh:mm:ss)]
*/
Date.prototype.getUtcTime = function (format = 'yyyy-MM-dd hh:mm:ss') {
return this.format(format) + 'GMT' + Math.abs(new Date().getTimezoneOffset() / 60) + '00'
}
/**
* 获取当前月的最后一天
* @param {String} fmt [日期类型 默认为年月日(yyyy-MM-dd)]
*/
Date.prototype.getCurrentMonthLast = function (format = 'yyyy-MM-dd') {
var currentMonth = this.getMonth();
var nextMonth = ++currentMonth;
var nextMonthFirstDay = new Date(this.getFullYear(), nextMonth, 1);
var oneDay = 1000 * 60 * 60 * 24;
return new Date(nextMonthFirstDay - oneDay).format(format);
}
/**
* 获取当前月的第一天
* @param {String} fmt [日期类型 默认为年月日(yyyy-MM-dd)]
*/
Date.prototype.getCurrentMonthFirst = function (format = 'yyyy-MM-dd') {
return new Date(this.getFullYear(), this.getMonth(), 1).format(format);
}
js日期拓展方法的更多相关文章
- javascript常用开发笔记:一个简单强大的js日期格式化方法
前言:一直没找到好用的javascript日期格式化工具,自己写了一个,方便以后复用 1.主要功能 (1)支持任意顺序的日期格式排列:yyyy=年,MM=月,dd=日,HH=时,mm=分,ss=秒,s ...
- Angular4.0引入laydate.js日期插件方法
Angular是不支持直接引入js文件的,下面介绍项目如果引入laydate.js的方法 一.将下载的laydate中的js和theme文件放到一个统一的文件下面,我把它放到asset下 二.在ang ...
- 记录:工作中用到的Js日期时间方法
/** * 获取当前时间 */ function getDate() { return new Date(); } /** * 格式化当前时间 * @param {*} value */ functi ...
- JS 日期比较方法
1.日期参数格式:yyyy-mm-dd // a: 日期a, b: 日期b, flag: 返回的结果 function duibi(a, b,flag) { var arr = a.split(&qu ...
- JS 日期实用方法
var DateUtil = function(){ /** * 判断闰年 * @param date Date日期对象 * @return boolean true 或false */ this.i ...
- js日期格式化方法 dateFormatFn
var dateFormatFn=function(val,fmt){ var _this = new Date(val); console.log(_this,_this.getFullYear() ...
- Zepto 添加手势判断拓展方法(思路+原理)
一.前言 这几个月事情比较多,写了一些博客都没有来得及整理发布,今天刚好有一位同事在开发前端页面的时候用到了手势判断.所以翻出了之前写的 demo,顺便整理一下作为记录. 手势判断在各种应用中都十分常 ...
- JS 日期比较
Js 日期比较方法 第一种方式 function compareDate(s1,s2){ return ((new Date(s1.replace(/-/g,"\/")))> ...
- js Date 函数方法及日期计算
js Date 函数方法 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份 ...
随机推荐
- 模板方法(Template Method)(父类声明算法骨架,子类具体不同实现)
在阎宏博士的<JAVA与模式>一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式 ...
- 2019-9-2-windows-10「设置」应用完整ms-settings快捷方式汇总
title author date CreateTime categories windows-10「设置」应用完整ms-settings快捷方式汇总 lindexi 2019-09-02 12:57 ...
- 初探Druid
说到连接池,最常见的就是dbcp和c3p0,关于druid,官方定义是为监控而生的数据库连接池. 官方中文文档地址:https://github.com/alibaba/druid/wiki/%E5% ...
- 2019阿里云开年Hi购季基础云产品分会场全攻略!
2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...
- 2018 8.8 提高A组模拟赛
T1 Description 被污染的灰灰草原上有羊和狼.有N只动物围成一圈,每只动物是羊或狼. 该游戏从其中的一只动物开始,报出[1,K]区间的整数,若上一只动物报出的数是x,下一只动物可以报[x+ ...
- linux系统 (实验一)实验楼的课程笔记
实验楼的课程笔记 tab 键是命令补全 输入 tail find / 立刻卡住 这时候ctrl+c 可以终端当前指令 一些常用的指令 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂停当前程序 ...
- switch或判断
<?php $num1 = 1; $num2 = 2; function int($num){ switch($num){ case 1: case 2: echo "1或2" ...
- Leetcode849.Maximize Distance to Closest Person到最近的人的最大距离
在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的. 至少有一个空座位,且至少有一人坐在座位上. 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上. 返回 ...
- Leetcode674.Longest Continuous Increasing Subsequence最长连续递增序列
给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...
- ie6中兼容性问题总结
针对firefox ie6 ie7 ie8的css样式中的line-height属性,以前我们大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7以上对! ...