JavaScript时间操作工具类
/**
* 时间操作工具类
*
* @author zwq
*
*/
var TimeFrameUtil = {
/**
* 格式化日期
* @param date {Date} 日期
* @param pattern {string} 格式,例:"yyyy-MM-dd HH:mm:ss"
* @returns {String} 返回格式化后的日期,如:"2018-01-22 18:04:30"
*/
format : function (date, pattern) {
var time = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"H+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
"q+": Math.floor((date.getMonth() + 3) / 3),
"S+": date.getMilliseconds()
};
if (/(y+)/i.test(pattern)) {
pattern = pattern.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in time) {
if (new RegExp("(" + k + ")").test(pattern)) {
pattern = pattern.replace(RegExp.$1, RegExp.$1.length == 1 ? time[k] : ("00" + time[k]).substr(("" + time[k]).length));
}
}
return pattern;
},
/**
* 将指定时间偏移几小时
* @param time {String} 指定时间,例:"2018-01-24 17:00"
* @param offset {Number} 偏移量,正数代表加几小时,负数代表减几小时,例:1
* @param pattern {String} 返回时间的格式,例:"yyyy-MM-dd HH:mm"
* @returns {String} 返回计算后的时间,如:"2018-01-24 18:00"
*/
offsetHours : function (time, offset, pattern) {
var date = new Date(Date.parse(time));
var yyyy = date.getFullYear();
var MM = date.getMonth();
var dd = date.getDate();
var HH = date.getHours() + offset;
var mm = date.getMinutes();
var ss = date.getSeconds();
return this.format(new Date(yyyy, MM, dd, HH, mm, ss), pattern);
},
/**
* 将指定月份偏移几个月
* @param month {String} 指定月份,例:"2018-01"
* @param offset {Number} 偏移量,负数代表上几个月,正数代表下几个月,例:1
* @returns {String} 返回计算后的月份,如:"2018-02"
*/
offsetMonths : function (month, offset) {
var date = new Date(Date.parse(month));
var year = date.getFullYear();
var month = date.getMonth();
var preOrNextMonth = month + offset;
return this.format(new Date(year, preOrNextMonth), "yyyy-MM");
},
/**
* 获取指定日期是星期几
* @param date {String} 指定日期,例:"2018-01-23"
* @returns {Number} 返回星期几(1-7),如:2
*/
dayOfWeek : function (date) {
var time = new Date(Date.parse(date));
var weekday=new Array(7);
weekday[0]= 7;
weekday[1]= 1;
weekday[2]= 2;
weekday[3]= 3;
weekday[4]= 4;
weekday[5]= 5;
weekday[6]= 6;
return weekday[time.getDay()];
},
/**
* 获取指定月份有多少天
* @param month {String} 指定月份:例"2018-01"
* @returns {number} 返回指定月份有多少天,如:31
*/
daysInMonth : function (month) {
var date = new Date(Date.parse(month));
var year = date.getFullYear();
var month = date.getMonth();
if (month == 1) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 29;
else
return 28;
} else if ((month <= 6 && month % 2 == 0) || (month > 6 && month % 2 == 1))
return 31;
else
return 30;
}
};
JavaScript时间操作工具类的更多相关文章
- java/javascript 时间操作工具类
一.java 时间操作工具类 import org.springframework.util.StringUtils; import java.text.ParseException; import ...
- JavaScript时间工具类
/** * JavaScript日期工具类 * @author ZhangLp */ /** * 获取当前月的第一天 */ function getCurrentMonthFirst(){ var d ...
- java时间操作工具类
import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.te ...
- 第一百零四节,JavaScript时间与日期
JavaScript时间与日期 学习要点: 1.Date类型 2.通用的方法 3.格式化方法 4.组件方法 ECMAScript提供了Date类型来处理时间和日期.Date类型内置一系列获取和设置日期 ...
- 【转载】ASP.NET工具类:文件夹目录Directory操作工具类
在ASP.NET开发网站的过程中,有时候会涉及到文件夹相关操作,如判断文件夹目录是否存在.删除文件夹目录.创建文件.删除文件.复制文件夹等等.这一批有关文件目录的操作可以通过Directory类.Fi ...
- javascript常用工具类整理(copy)
JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串 return Object.prototype.to ...
- 基于jquery的提示框JavaScript 插件,类Bootstrap
目录 基于jquery的提示框JavaScript 插件,类Bootstrap 基于jquery的提示框JavaScript 插件,类Bootstrap 源码 github地址: https://gi ...
- 玩转JavaScript OOP[2]——类的实现
概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了 ...
- javascript基础知识-类和模块
在JavaScript中可以定义对象的类,让每个对象都共享这些属性. 在JavaScript中,类的实现是基于其原型继承机制的.如果两个实例都从同一个原型对象上继承了属性,我们就说它们是同一个类的实例 ...
随机推荐
- 13.2.DataGrid增、删、改、查后台实现
一.UserServlet: 二:Dao接口: 三:Dao接口的实现类:
- PostgresSQL使用Copy命令能大大提高数据导入速度
最近在做会员系统,其中会员系统有一份企业信息初始化的数据,需要从SQL Server数据库导入到PostgreSQL,单表的数据近30万.最开始的方案是在SQL Server上生成insert int ...
- iOS图片按比例显示
只需加这么一段代码,如下: imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.autoresizesSubviews ...
- Ocelot——初识基于.Net Core的API网关
前言 前不久看到一篇<.NET Core 在腾讯财付通的企业级应用开发实践>,给现在研究.Net Core及想往微服务方向发展的人来了一剂强心针.于是我也就立刻去下Ocelot的源码及去阅 ...
- cvpr2015总结
cvpr所有文章 http://cs.stanford.edu/people/karpathy/cvpr2015papers/ CNN Hypercolumns for Object Segmenta ...
- C# 利用VS中的插件来打包并发布winfrom程序
1.先在VS 的扩展更新中搜索此插件[2015 installer Projects],点击下载,安装需要关闭VS 2.安装完毕之后新建项目 3.选择“application folder”项,然后在 ...
- C# WPF 中WebBrowser拖动来移动窗口,改变窗口位置
前言 wpf中的WebBrowser相比之前的winform阉割了不少东西,也增加了不少东西,但是msdn对wpf也没有较好的文档 WebBrowser可以说是一个.NET控件,相对于WPF中的控件, ...
- 【转】TOP10美国虚拟主机/网站空间推荐
原文:http://www.laozuo.org 不同的站长用户需要不同的主机产品,并不是所有的站长, 所有的网站都想放置在VPS服务器中的.虚拟主机也有虚拟主机的方便和优势,下面为老左精选的10个比 ...
- python--Websocket实现, 加密 sha1,base64
需要用到gevent-websocket包,这里我们用下图这个 一.websocket简单实现 ep1.py from geventwebsocket.handler import WebSocket ...
- 常用的SQL调优
1. 不要使用 select * ,使用select *的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的. 2. 避免在 where 子句中使用 or 来连接条件,可以 ...