1、js用Date对象的setDate()函数对日期进行加减操作
//方法1
function addDate(date, days) {
var d = new Date(date);
d.setDate(d.getDate() + days);
var month = d.getMonth() + 1;
return d.getFullYear() + '-' + month + '-' + d.getDate();
}
//方法2
function addDate(date, days) {
var d = new Date(date);
d.setDate(d.getDate() + days);
var month = d.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
return d.getFullYear() + "" + month + "" + d.getDate();
}
其中,date参数是要进行加减的日期,days参数是要加减的天数,如果往前算就传入负数,往后算就传入正数,如果是要进行月份的加减,就调用setMonth()和getMonth()就可以了,需要注意的是返回的月份是从0开始计算的,也就是说返回的月份要比实际月份少一个月,因此要相应的加上1
转自:http://shanfengyeshui.iteye.com/blog/838033
2、js获取当前时间及其他操作
//获取当前时间
var myDate = new Date();
var currentDate = transferDate(myDate);
$("#actualEndDate").datebox('setValue', currentDate);
//换成datebox需要显示的格式
function transferDate(date) {
var d = new Date(date);
var m = d.getMonth() + 1;
return d.getFullYear() + '-' + m + '-' + d.getDate();
}//获取当前的年、月
var date = new Date;
var currentYear = date.getFullYear();
var currentMonth = date.getMonth() + 1;
$("#planYear").val(currentYear);
$("#planMonth").val(currentMonth);
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
日期时间脚本库方法列表
Date.prototype.isLeapYear 判断闰年
Date.prototype.Format 日期格式化
Date.prototype.DateAdd 日期计算
Date.prototype.DateDiff 比较日期差
Date.prototype.toString 日期转字符串
Date.prototype.toArray 日期分割为数组
Date.prototype.DatePart 取日期的部分信息
Date.prototype.MaxDayOfDate 取日期所在月的最大天数 Date.prototype.WeekNumOfYear 判断日期所在年的第几周
StringToDate 字符串转日期型
IsValidDate 验证日期有效性
CheckDateTime 完整日期时间检查
daysBetween 日期天数差
贴上来的都是自己当时做项目时找的资料,以及确实用到并起作用的一些方法,总结一下,加深一下自己的印象,以后遇到这些问题就easy啦
此网页的一些内容介绍了JavaScript的一些核心对象,类似于API吧
3、js判断结束时间不能小于开始时间
$('#endDate').datebox({
required: true,
onChange: function (date) {
checkDateOK();
}
});
})
//验证:1结束时间>=开始时间
function checkDateOK() {
//结束时间>=开始时间
var startTime = $('#startDate').datebox('getValue');
var str = startTime.split("-");
var a = new Date(str[0], str[1], str[2]);
var endTime = $('#endDate').datebox('getValue');
var str1 = endTime.split("-");
var b = new Date(str1[0], str1[1], str1[2]);
if (startTime != '' && endTime != '' && (getNewDate(a) - getNewDate(b) > 0)) {
alert('结束时间不能小于开始时间');
//$("#endDate").datebox('setValue', "");
return false;
}
}
//date转换
function getNewDate(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
var str = y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d);
var dates = str.split("-");
var dateReturn = '';
for (var i = 0; i < dates.length; i++) {
dateReturn += dates[i];
}
return dateReturn;
}
datebox选择结束时间时,自动判断结束时间不能小于开始时间,否则提示错误,因为弹框影响用户体验,想直接把结束时间置为空,用$("#endDate").datebox('setValue',"")没成功,或许应该试试$("#endDate").datebox('clear').......