1、把JS里面的Date规范输出为“YYYY-MM-DD HH:mm:SS”的字符串- 把下面的代码复制到你的JS里,Date对象就可以直接调用toCommonCase():
-
-
Date.prototype.toCommonCase=function(){
-
var xYear=this.getYear();
-
xYear=xYear+1900;
-
-
var xMonth=this.getMonth()+1;
-
if(xMonth<10){
-
xMonth="0"+xMonth;
-
}
-
-
var xDay=this.getDate();
-
if(xDay<10){
-
xDay="0"+xDay;
-
}
-
-
var xHours=this.getHours();
-
if(xHours<10){
-
xHours="0"+xHours;
-
}
-
-
var xMinutes=this.getMinutes();
-
if(xMinutes<10){
-
xMinutes="0"+xMinutes;
-
}
-
-
var xSeconds=this.getSeconds();
-
if(xSeconds<10){
-
xSeconds="0"+xSeconds;
-
}
-
return xYear+"-"+xMonth+"-"+xDay+" "+xHours+":"+xMinutes+":"+xSeconds;
-
}
2、日期格式校验
- //判断输入的内容是否为日期格式
-
function checkDateFormate(Field) {
-
var inputDateValue = Field.value;
-
var desc = Field.description;
-
if(inputDateValue == null || inputDateValue == '') {
-
return false;
-
}
-
-
//获取输入字符串的长度
-
var inputValueLength = inputDateValue.length;
-
//如果满足下面判断的所有条件才算合法的日期,否则不合法
-
if(checkNumeric(inputDateValue) && checkLegth(inputValueLength) && checkSpecialChar(inputDateValue) ) {
-
return true;
-
}else {
-
errorMessage("请输入合法的" + desc +"\n类型为日期,格式为YYYY-MM-DD 或者YYYYMMDD");
-
Field.focus();
-
return false;
-
}
-
}
-
-
//日期只能是8~10位
-
function checkLegth(length) {
-
if(length < 8 || length > 10) {
-
return false;
-
}
-
return true;
-
}
-
-
//如果输入的内容中包含‘-’,则按照‘-’分割来去年月日,否则直接按照位数取
-
function checkSpecialChar(inputDateValue) {
-
var index = inputDateValue.indexOf('-');
-
var year = 0;
-
var month = 0;
-
var day = 0;
-
if(index > -1) {
-
var lastIndex = inputDateValue.lastIndexOf('-');
-
//只能是YYYY-M-DD或者YYYY-MM-DD的形式
-
if(lastIndex - index < 1 || lastIndex - index > 3) {
-
return false;
-
}
-
var arrDate = inputDateValue.split('-');
-
year = arrDate[0];
-
month = arrDate[1];
-
day = arrDate[2];
-
} else {
-
year = inputDateValue.substring(0,4);
-
month = inputDateValue.substring(4,6);
-
day = inputDateValue.substring(6,8);
-
}
-
if(Number(month) > 12 || Number(day) > 31 ||Number(month)<1
-
|| Number(day)<1 || year.length != 4) {
-
return false;
-
} else if(day > getLastDayOfMonth(Number(year),Number(month))) {
-
return false;
-
}
-
return true;
-
}
-
-
//判断输入的内容将‘-’替换成为数字1后,是否全部为数字
-
function checkNumeric(inputDateValue) {
-
var replacedValue = inputDateValue.replace(/-/g,'1');
-
return isNumeric(replacedValue);
-
}
-
-
//判断是否为数字
-
function isNumeric(strValue)
-
{
-
var result = regExpTest(strValue,/\d*[.]?\d*/g);
-
return result;
-
}
-
-
function regExpTest(source,re)
-
{
-
var result = false
-
-
if(source==null || source=="")
-
return false;
-
if(source==re.exec(source))
-
result = true;
-
return result;
-
}
-
-
-
//获得一个月中的最后一天
-
function getLastDayOfMonth(year,month){
-
var days=0;
-
switch(month){
-
case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
-
case 4: case 6: case 9: case 11: days=30;break;
-
case 2: if(isLeapYear(year)) days=29;else days=28;break;
-
}
-
return days;
-
}
-
-
//判断是否为闰年
-
function isLeapYear(year){
-
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
-
else return false;
-
}
3、字符串转日期
- function strToDate(str)
-
{
-
var arys= new Array();
-
arys=str.split('-');
-
//1月份是用0来表示的,所以2002年10月12日,应表示为2002-9-12
-
var newDate=new Date(arys[0],arys[1]-1,arys[2]);
-
return newDate;
-
}
4、日期转字符串
- function strToDate(str)
-
{
-
var val=Date.parse(str);
-
var newDate=new Date(val);
-
return newDate;
-
}
5、自己写的jQuery时间判断,使用了上面的某些函数
- $(":button").click(function(){
-
if($(":text:eq(0)").val() =='' ||$(":text:eq(1)").val() =='' ){
-
alert("请先填写查询时间!");
-
return false;
-
}checkSpecialChar
-
if(!checkSpecialChar($(":text:eq(0)").val()) || !checkSpecialChar($(":text:eq(0)").val()) ){
-
alert("时间格式错误!");
-
return false;
-
}
-
var arys1= new Array();
-
var arys2= new Array();
-
arys1=$(":text:eq(0)").val().split('-');
-
arys2=$(":text:eq(1)").val().split('-');
-
-
//1月份是用0来表示的,所以2002年10月12日,应表示为2002-9-12
-
var newDate1 = new Date(arys1[0],arys1[1]-1,arys1[2]);
-
var newDate2 = new Date(arys2[0],arys2[1]-1,arys2[2]);
-
-
if(newDate1 > newDate2 ){
-
alert("起始日期不能大于终止日期!");
-
return false;
-
}
-
$("form[name='form1']").submit();
-
});
阅读(5082) | 评论(0) | 转发(0) |