/* 日期对象格式化为指定日期格式 */
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 日期操作类的更多相关文章

  1. js moment.js日期操作类 datetime,日期操作,dayjs

    http://momentjs.com/ JS时间处理插件MomentJS https://juejin.im/post/5a2bdc55f265da432b4abf5e Day.js 2kB超轻量时 ...

  2. JS 日期工具类-基于yDate

    源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...

  3. 使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间

    public String dealDate(String case_time){ // 日期操作类 Calendar calendar = Calendar.getInstance(); // 当前 ...

  4. JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树

    /** * Math类.Random类.Arrays类:具体查JAVA手册...... */ public class Main { public static void main(String[] ...

  5. 菜鸡的Java笔记 日期操作类

    日期操作类        Date 类与 long 数据类型的转换        SimpleDateFormat 类的使用        Calendar 类的使用                如 ...

  6. 日期操作类--Date类

    Date-API ava.util包提供了Date类来封装当前的日期和时间.Date类提供两个构造函数来实例化Date对象.第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函 ...

  7. js中时间戳与日期转换-js日期操作

    常用的一些日期操作. 用js获取一个时间戳. <script type="text/javascript"> var date = new Date();//当前时间 ...

  8. 日期操作类--SimpleDateFormat类

    使用SimpleDateFormat格式化日期 SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类.SimpleDateFormat允许你选择任何用户自定义日期时间格式来 ...

  9. js日期操作

    1.最基本的日期操作 var mydate = new Date(); set/get   FullYear,Month,Date,Hour,Minutes,Second可以随意拼接 toLocale ...

随机推荐

  1. xml_02

    1.xml 2.对于XML文档的约束   |-DTD      <!DOCTYPE 根元素 [       <!ELEMENT 元素名 (xx)>       <!ATTLIS ...

  2. postgresql 字符串拼接"||“的使用

    不过注意这里的只有postgresql可以使用,其他数据库不明. select name || remark as newname from mytable where name like '%tes ...

  3. 实现View弹性滑动例子

    弹性滑动原理 将一次大的滑动非为若干次小的滑动,并在一个时间段内完成.有一种顺畅的感觉更-好的用户体验 实现方式很多种,包括用Scroller.动画.延时策略. 使用Handler实现弹性滑动 效果可 ...

  4. dumpbin工具的使用

    当我们需要查看一个dll或exe文件中的包含的函数或是依赖的函数之类的信息,可以使用Visual Studio自带的工具dumpbin来实现,使用方法为: 1/ 启动Visual Studio 命令行 ...

  5. 数据库hang住 处理过程

    当数据库出现严重的性能问题或者hang了的时候,我们非常需要通过systemstate dump来知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人.在出现上述问题时,及时收集systems ...

  6. oracle11g不能导出空表

    Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息: ORACLE 11G在用EXPORT导出时,空表不能导出. 11 ...

  7. Objective-C MRC多个对象相互引用的内存管理

    在MRC环境下,假定CTRoom对象是CTPerson的一个成员变量,那么修改CTRoom对象时应注意,代码如下: - (void) setRoom:(CTRoom *) room { //需判断新旧 ...

  8. java图片高质量缩放类

    import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedI ...

  9. STL库之单链表:forward_list

    class template forward_list <forward_list> template < class T, class Alloc = allocator<T ...

  10. @using (Html.BeginForm())收集

    一 ,制定表单提交方式和路径 1,指明(视图,控制器,提交方式,参数) <%using(Html.BeginForm("Index","Home",For ...