//定义命名空间
var DatePlugin;
if (!DatePlugin) DatePlugin = {}; /*整理时间:2015-05-28*/ var defaultFormat = "yyyy-MM-dd"; //默认的日期格式
var totalDefaultFormat = "yyyy-MM-dd hh:mm:ss";
var pointFormat = "yyyy.MM.dd";
var slashFormat = "MM/dd/yyyy";
var textFormat = "yyyy年MM月dd日";
var totalTextFormat = "yyyy年MM月dd日hh小时mm分ss秒";
var noFormat = "yyyyMMdd"; /* 转换时间格式 */
Date.prototype.Format = function (DateFormat) {
var o = {
"M+": this.getMonth() + , //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + ) / ), //quarter
"S": this.getMilliseconds() //millisecond
}
var format = (DateFormat) ? DateFormat : defaultFormat;
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$, (this.getFullYear() + "").substr( - RegExp.$.length));
} for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$, RegExp.$.length == ? o[k] : ("" + o[k]).substr(("" + o[k]).length));
}
}
return format;
} /* 增加天数 */
Date.prototype.addDay = function (num) {
this.setDate(this.getDate() + num);
return this;
}; /* 增加月数 */
Date.prototype.addMonth = function (num) {
var tempDate = this.getDate();
this.setMonth(this.getMonth() + num);
if (tempDate != this.getDate()) this.setDate();
return this;
}; /* 增加年数 */
Date.prototype.addYear = function (num) {
var tempDate = this.getDate();
this.setYear(this.getYear() + num);
if (tempDate != this.getDate()) this.setDate();
return this;
}; /*
*获取某日日期 可传日期格式参数
*默认格式:YYYY-MM-DD
*/
DatePlugin.exactDate = { /* 获取今日日期 */
getTodayDate:function (DateFormat) {
var myDate = new Date();
return myDate.Format(DateFormat);
}, /* 获取明日日期 */
getTomorrowDate: function (DateFormat) {
var myDate = new Date().addDay();
return myDate.Format(DateFormat);
}, /* 获取昨天日期 */
getYesterdayDate: function (DateFormat) {
var myDate = new Date().addDay(-);
return myDate.Format(DateFormat);
}
} /*
*统计某个时间段的周数或天数或者返回值是数字
*/
DatePlugin.staticDate = { /*统计今年某月的天数*/
getMonthDays: function (Month) {
var myMonth = Month;
var now = new Date(); //当前日期
var nowYear = now.getFullYear(); //当前年
var monthStartDate = new Date(nowYear, myMonth, );
var monthEndDate = new Date(nowYear, myMonth + , );
var days = (monthEndDate - monthStartDate) / ( * * * );
return days;
}, /*统计某年某月总周数*/
getWeekCounts: function (year, month) {
var firstDate = new Date(year, month, );
var first = firstDate.getDay();
var endDate = ; // 周六
var firstWeekday = endDate - first + ;
var lastDay = this.getMonthDays(month) - firstWeekday;
return Math.ceil(lastDay / ) + ;
}, /*获取当前月*/
getCurrentMonth:function () {
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth() + ; //当前月
var nowYear = now.getFullYear(); //当前年
return nowMonth;
}
} DatePlugin.calculDate = { /*计算几天前或几天后的日期*/
getTrunsAddDay: function (date,num,DateFormat) {
var targetday_milliseconds = date.getTime() + * * * * num;
var resultDate = new Date(date.setTime(targetday_milliseconds));
return resultDate.Format(DateFormat);
}, /*获得本月的开始日期*/
getMonthStartDate: function (DateFormat) {
var now = new Date(); //当前日期
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getFullYear(); //当前年
var monthStartDate = new Date(nowYear, nowMonth, );
return monthStartDate.Format(DateFormat);
}, /*获得本月的结束日期*/
getMonthEndDate: function (DateFormat) {
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getFullYear(); //当前年
var monthEndDate = new Date(nowYear, nowMonth, DatePlugin.staticDate.getMonthDays(nowMonth));
return monthEndDate.Format(DateFormat);
}, /*获得某个月的开始日期*/
getMonthStart: function (currDate, DateFormat) {
var now = new Date(currDate); //当前日期
var nowMonth = parseInt(now.getMonth()); //当前月
var nowYear = now.getFullYear(); //当前年 var monthStartDate = new Date(nowYear, nowMonth, );
return monthStartDate.Format(DateFormat);
}, /*获得某个月的结束日期*/
getMonthEnd: function (currDate, DateFormat) {
var now = new Date(currDate); //当前日期
var nowMonth = parseInt(now.getMonth()); //当前月
var nowYear = now.getFullYear(); //当前年 var monthEndDate = new Date(nowYear, nowMonth, DatePlugin.staticDate.getMonthDays(nowMonth));
return monthEndDate.Format(DateFormat);
}, /*获得当天开始前一个月的开始日期*/
getBeforeMonth: function (DateFormat) {
var now = new Date(); //当前日期
var nowMonth = now.getMonth() - ; //当前月
var nowYear = now.getFullYear(); //当前年
var monthDate;
if (nowMonth != -) {
monthDate = new Date(nowYear, nowMonth);
} else {
monthDate = new Date(nowYear - , );
}
return monthDate.Format(DateFormat);
}, /*获取最近一周开始时间*/
getBeforeOneWeekStartDate: function (DateFormat) {
var nowdate = new Date();
return oneweekkdate = this.getTrunsAddDay(nowdate, -, DateFormat);
}, /*获取三个月以内的起始时间*/
getBeforeThreeMonthStartDate: function (DateFormat) {
var nowdate = new Date();
return threemonthdate = this.getTrunsAddDay(nowdate, -, DateFormat);
}, /*获取一个月以内的起始时间*/
getBeforeOneMonthStratDate: function (DateFormat) {
var nowdate = new Date();
return threemonthdate = this.getTrunsAddDay(nowdate, -, DateFormat);
} } DatePlugin.otherDate = { /*ISO8601*/
parseISO8601:function(dateStringInRange) {
var isoExp = /^\s*(\d{})-(\d\d)-(\d\d)\s*$/,
date = new Date(NaN), month,
parts = isoExp.exec(dateStringInRange); if (parts) {
month = +parts[];
date.setFullYear(parts[], month - , parts[]);
if (month != date.getMonth() + ) {
date.setTime(NaN);
}
}
return date;
}, /*处理日期格式兼容浏览器方法*/
newDate:function(str) {
str = str.split('-');
var date = new Date();
date.setUTCFullYear(str[], str[] - , str[]);
date.setUTCHours(, , , );
return date;
}
}

date.plugin.js 日期插件的更多相关文章

  1. js日期插件bootstrap-datetimepicker的使用

    js日期插件——bootstrap-datetimepicker的使用心得: 在大多说的web项目中,都有日期选择器的使用.如果自己写一个日期选择器的话,费时又费力,而且不一定能写出来_(:3 」∠) ...

  2. js 日期插件 datepicker

    点击图片出现  时间 ,增加一个点击事件 <label for="" class="width80">创建日:</label> < ...

  3. 【vue学习】vue中怎么引用laydate.js日期插件

    此贴意在解决一个妹子的问题 https://q.cnblogs.com/q/101462 下载js包 http://www.layui.com/laydate/ 将laydate下载的包解压放入sta ...

  4. javascript Date format(js日期格式化) (转)

    方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) ...

  5. [转]javascript Date format(js日期格式化)

    方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q)  ...

  6. javascript Date format(js日期格式化)

    这个用这比较爽,记录一下// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年( ...

  7. [荐]javascript Date format(js日期格式化)

    cnblog:http://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html 方法一: // 对Date的扩展,将 Date  ...

  8. validate.plugin.js 验证插件

    /*编写时间:2015-6-4*/ (function ($) { $.fn.isValidate = function (obj) { if ($(this).val()!="" ...

  9. laydate JS日期插件

    原文出处 简要介绍 你是时候换一款日期控件了,而layDate非常愿意和您成为工作伙伴.她致力于成为全球最用心的web日期支撑,为国内外所有从事web应用开发的同仁提供力所能及的动力.她基于原生Jav ...

随机推荐

  1. T-SQL操作表结构(转)

    在网上整理的一牛人资料,收集与此与君共享 用SQL语句添加删除修改字段1.增加字段     ALTER TABLE  [yourTableName] ADD [newColumnName] newCo ...

  2. BitNami一键安装Redmine(转)

    1. 简介 对于一个新手,如果严格按照官方文档来安装redmine,我想会“疯”掉的.有没有一种简便的方法.有滴,那就是BitNami. BitNami提供redmine的一键安装程序,简单.易用.方 ...

  3. VirtualBox下导入CentOS后,无法上网

        从VirtualBox的"管理"菜单下,选择"导出虚拟电脑",存一个备份.用时,再从"管理"菜单下,选择"导入虚拟电脑&q ...

  4. linux下获取时间差

    #include <sys/time.h> struct timeval tpstart,tpend;     float timeuse;     gettimeofday(&t ...

  5. Biba模型简介

    上周上信息安全的课,老师留了个Biba模型的作业.自己看书了解了一下,记录如下. 参考资料:石文昌<信息系统安全概论第2版> ISBN:978-7-121-22143-9 Biba模型是毕 ...

  6. java String 空指针异常

    如下代码中,第8行和第10行均会提示Exception in thread "main" java.lang.NullPointerException. 第12行的写法可行. im ...

  7. BZOJ 3198 SDOI2013 spring

    为什么SDOI省选一年考两次容斥原理? 我们很容易发现>=k个相等时很好计算的 但是我们要求恰好k个,那么我们容斥即可 至于计算>=k个相等,首先我们枚举相等位置,对每个串对应位置做一遍h ...

  8. Project Euler 89:Roman numerals 罗马数字

    Roman numerals For a number written in Roman numerals to be considered valid there are basic rules w ...

  9. 几种USB控制器类型:OHCI,UHCI,EHCI,xHCI

    http://smilejay.com/2012/10/usb_controller_xhci/ 遇到过一些关于USB的东西(如下),一直没搞明白什么USB1.0/1.1/2.0/3.0之类的,当然我 ...

  10. [iOS]iPhone利用<极光推送>实现远程推送

    准备: 1. 一个Xcode工程 2. 开发者账号 3. 真机 (重要,模拟器无法进行远程推送,因为模拟器没有UDID) 第一步:绑定工程的Bundle Identifer 首先当然要登录https: ...