JS 日期操作类
/* 日期对象格式化为指定日期格式 */
Date.prototype.format = function (format) {
    var o = {
        "M+": this.getMonth() + 1, //month     
        "d+": this.getDate(),    //day     
        "h+": this.getHours(),   //hour     
        "m+": this.getMinutes(), //minute     
        "s+": this.getSeconds(), //second     
        "q+": Math.floor((this.getMonth() + 3) / 3), //quarter     
        "S": this.getMilliseconds() //millisecond     
    }
    if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
	     (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o) if (new RegExp("(" + k + ")").test(format))
        format = format.replace(RegExp.$1,
	       RegExp.$1.length == 1 ? o[k] :
	         ("00" + o[k]).substr(("" + o[k]).length));
    return format;
}
/* 
*参数
*dateObj 
*    必选项。任意 Date 对象。
*interval
*    必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
*number
*    必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
*interval 参数可以有以下值:
*设置	描述
*y	年
*q	季度
*m	月
*d	日
*w	周
*h	小时
*n	分钟
*得到日期年月日等加数字后的日期 
*/
Date.prototype.dateAdd = function (interval, number) {
    var d = this;
    var k = { 'y': 'FullYear', 'q': 'Month', 'm': 'Month', 'w': 'Date', 'd': 'Date', 'h': 'Hours', 'n': 'Minutes', 's': 'Seconds', 'ms': 'MilliSeconds' };
    var n = { 'q': 3, 'w': 7 };
    eval('d.set' + k[interval] + '(d.get' + k[interval] + '()+' + ((n[interval] || 1) * number) + ')');
    return d;
}
/* 计算两日期相差的日期年月日等 */
Date.prototype.dateDiff = function (interval, objDate2) {
    var d = this, i = {}, t = d.getTime(), t2 = objDate2.getTime();
    i['y'] = objDate2.getFullYear() - d.getFullYear();
    i['q'] = i['y'] * 4 + Math.floor(objDate2.getMonth() / 4) - Math.floor(d.getMonth() / 4);
    i['m'] = i['y'] * 12 + objDate2.getMonth() - d.getMonth();
    i['ms'] = objDate2.getTime() - d.getTime();
    i['w'] = Math.floor((t2 + 345600000) / (604800000)) - Math.floor((t + 345600000) / (604800000));
    i['d'] = Math.floor(t2 / 86400000) - Math.floor(t / 86400000);
    i['h'] = Math.floor(t2 / 3600000) - Math.floor(t / 3600000);
    i['n'] = Math.floor(t2 / 60000) - Math.floor(t / 60000);
    i['s'] = Math.floor(t2 / 1000) - Math.floor(t / 1000);
    return i[interval];
}
/* 日期字符串转化为日期对象 */
function parseDate(str) {
if (typeof str == 'string') {
        var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
        if (results && results.length > 3)
            return new Date(Number(results[1]), Number(results[2]) - 1, Number(results[3]));
        results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
        if (results && results.length > 6)
            return new Date(Number(results[1]), Number(results[2]) - 1, Number(results[3]), Number(results[4]), Number(results[5]), Number(results[6]));
        results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
        if (results && results.length > 7)
            return new Date(Number(results[1]), Number(results[2]) - 1, Number(results[3]), Number(results[4]), Number(results[5]), Number(results[6]), Number(results[7]));
}
    return null;
}
//function rain() {
//    obj1 = new Date().format("yyyy-MM-dd hh:mm:ss");
//    obj2 = new Date().format("yyyy-MM-dd");
//    obj3 = new Date().format("yyyy/MM/dd");
//    obj4 = new Date().format("MM/dd/yyyy");
//    obj5 = new Date().format("yyyy-MM-dd hh:mm");
//    alert("obj1=" + obj1 + "/n  obj2=" + obj2 + "/n  obj3=" + obj3 + "/n  obj4=" + obj4);
//    alert(obj5);
//    var str = "2010-1-10 22:10:10";
//    var dates = parseDate(str);
//    alert(dates.getDate());
//    obj7 = dates.format("yyyy-MM-dd");
//    alert(obj7);
//}
//rain();
JS 日期操作类的更多相关文章
- js moment.js日期操作类 datetime,日期操作,dayjs
		
http://momentjs.com/ JS时间处理插件MomentJS https://juejin.im/post/5a2bdc55f265da432b4abf5e Day.js 2kB超轻量时 ...
 - JS 日期工具类-基于yDate
		
源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...
 - 使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间
		
public String dealDate(String case_time){ // 日期操作类 Calendar calendar = Calendar.getInstance(); // 当前 ...
 - JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树
		
/** * Math类.Random类.Arrays类:具体查JAVA手册...... */ public class Main { public static void main(String[] ...
 - 菜鸡的Java笔记 日期操作类
		
日期操作类 Date 类与 long 数据类型的转换 SimpleDateFormat 类的使用 Calendar 类的使用 如 ...
 - 日期操作类--Date类
		
Date-API ava.util包提供了Date类来封装当前的日期和时间.Date类提供两个构造函数来实例化Date对象.第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函 ...
 - js中时间戳与日期转换-js日期操作
		
常用的一些日期操作. 用js获取一个时间戳. <script type="text/javascript"> var date = new Date();//当前时间 ...
 - 日期操作类--SimpleDateFormat类
		
使用SimpleDateFormat格式化日期 SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类.SimpleDateFormat允许你选择任何用户自定义日期时间格式来 ...
 - js日期操作
		
1.最基本的日期操作 var mydate = new Date(); set/get FullYear,Month,Date,Hour,Minutes,Second可以随意拼接 toLocale ...
 
随机推荐
- 如何在网页上显示html代码?
			
a: 把代码写在文本区域 <textarea> 标签中.可以设置 disabled="disabled" 属性,禁止用户操作.b: 把要显示在html文档中标签的 &q ...
 - EditText属性详解
			
关于EditText属性详解很详细的记录,转过来收着 1.EditText输入的文字为密码形式的设置 (1)通过.xml里设置: 把该EditText设为:android:password=" ...
 - 注册dll
			
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...
 - Spring MVC 3.0 返回JSON数据的方法
			
Spring MVC 3.0 返回JSON数据的方法1. 直接 PrintWriter 输出2. 使用 JSP 视图3. 使用Spring内置的支持// Spring MVC 配置<bean c ...
 - JQuery的几种页面加载完执行三种方式
			
jquery加载页面的方法(页面加载完成就执行) 1. $(function(){ $("#a").click(function(){ //adding your code h ...
 - Codevs 1183 泥泞的道路
			
1183 泥泞的道路 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description CS有n个小区,并且任意小区之间都有两条单向道路 ...
 - siege 压力测试
			
Ben: $ siege -u shemp.whoohoo.com/Admin.jsp -d1 -r10 -c25 ..Siege 2.65 2006/05/11 23:42:16 ..Prepari ...
 - php 常用五种模式
			
/* 设计模式之单例模式 $_instance 必须声明为静态的私有变量 构造函数必须声明为私有,防止外部程序 new 类从而失去单例模式的意义 getInstance() 方法必须设置为公有的,必须 ...
 - css3流式布局
			
css3布局方式: 不推荐使用float,有时候使用浮动的时候,对于可适应的流氏布局,无法胜任. 推荐使用css3的display:webkit-box. 使用的html代码 <div clas ...
 - php中文编码
			
header("Content-type: text/html; charset=utf-8"); header('Location: http://www.example.com ...