Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4057017
  • 博文数量: 272
  • 博客积分: 7846
  • 博客等级: 少将
  • 技术积分: 6476
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-25 16:27
文章分类

全部博文(272)

分类: Python/Ruby

2011-11-26 23:44:41


1、把JS里面的Date规范输出为“YYYY-MM-DD HH:mm:SS”的字符串
  1. 把下面的代码复制到你的JS里,Date对象就可以直接调用toCommonCase():

  2. Date.prototype.toCommonCase=function(){
  3. var xYear=this.getYear();
  4. xYear=xYear+1900;

  5. var xMonth=this.getMonth()+1;
  6. if(xMonth<10){
  7. xMonth="0"+xMonth;
  8. }

  9. var xDay=this.getDate();
  10. if(xDay<10){
  11. xDay="0"+xDay;
  12. }

  13. var xHours=this.getHours();
  14. if(xHours<10){
  15. xHours="0"+xHours;
  16. }

  17. var xMinutes=this.getMinutes();
  18. if(xMinutes<10){
  19. xMinutes="0"+xMinutes;
  20. }

  21. var xSeconds=this.getSeconds();
  22. if(xSeconds<10){
  23. xSeconds="0"+xSeconds;
  24. }
  25. return xYear+"-"+xMonth+"-"+xDay+" "+xHours+":"+xMinutes+":"+xSeconds;
  26. }

2、日期格式校验
  1. //判断输入的内容是否为日期格式
  2. function checkDateFormate(Field) {
  3.     var inputDateValue = Field.value;
  4.     var desc = Field.description;
  5.     if(inputDateValue == null || inputDateValue == '') {
  6.        return false;
  7.     }

  8.     //获取输入字符串的长度
  9.     var inputValueLength = inputDateValue.length;
  10.     //如果满足下面判断的所有条件才算合法的日期,否则不合法
  11.     if(checkNumeric(inputDateValue) && checkLegth(inputValueLength) && checkSpecialChar(inputDateValue) ) {
  12.        return true;
  13.     }else {
  14. errorMessage("请输入合法的" + desc +"\n类型为日期,格式为YYYY-MM-DD 或者YYYYMMDD");
  15.        Field.focus();
  16.        return false;
  17.     }
  18. }

  19. //日期只能是8~10位
  20. function checkLegth(length) {
  21.     if(length < 8 || length > 10) {
  22.        return false;
  23.     }
  24.     return true;
  25. }

  26. //如果输入的内容中包含‘-’,则按照‘-’分割来去年月日,否则直接按照位数取
  27. function checkSpecialChar(inputDateValue) {
  28.     var index = inputDateValue.indexOf('-');
  29.     var year = 0;
  30.     var month = 0;
  31.     var day = 0;
  32.     if(index > -1) {
  33.        var lastIndex = inputDateValue.lastIndexOf('-');
  34.        //只能是YYYY-M-DD或者YYYY-MM-DD的形式
  35.        if(lastIndex - index < 1 || lastIndex - index > 3) {
  36.            return false;
  37.        }
  38.        var arrDate = inputDateValue.split('-');
  39.            year = arrDate[0];
  40.            month = arrDate[1];
  41.            day = arrDate[2];
  42.        } else {
  43.            year = inputDateValue.substring(0,4);
  44.            month = inputDateValue.substring(4,6);
  45.            day = inputDateValue.substring(6,8);
  46.        }
  47.        if(Number(month) > 12 || Number(day) > 31 ||Number(month)<1
  48.                            || Number(day)<1 || year.length != 4) {
  49.            return false;
  50.     } else if(day > getLastDayOfMonth(Number(year),Number(month))) {
  51.            return false;
  52.     }
  53.     return true;
  54. }

  55. //判断输入的内容将‘-’替换成为数字1后,是否全部为数字
  56. function checkNumeric(inputDateValue) {
  57.     var replacedValue = inputDateValue.replace(/-/g,'1');
  58.     return isNumeric(replacedValue);
  59. }

  60. //判断是否为数字
  61. function isNumeric(strValue)
  62. {
  63.   var result = regExpTest(strValue,/\d*[.]?\d*/g);
  64.   return result;
  65. }

  66. function regExpTest(source,re)
  67. {
  68.   var result = false

  69.   if(source==null || source=="")
  70.     return false;
  71.   if(source==re.exec(source))
  72.     result = true;
  73.   return result;
  74. }


  75. //获得一个月中的最后一天
  76. function getLastDayOfMonth(year,month){
  77.     var days=0;
  78.     switch(month){
  79.     case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
  80.     case 4: case 6: case 9: case 11: days=30;break;
  81.     case 2: if(isLeapYear(year)) days=29;else days=28;break;
  82.     }
  83.     return days;
  84. }

  85. //判断是否为闰年
  86. function isLeapYear(year){
  87.     if((year %4==0 && year %100!=0) || (year %400==0)) return true;
  88.     else return false;
  89. }

3、字符串转日期
  1. function strToDate(str)
  2. {
  3.   var arys= new Array();
  4.   arys=str.split('-');
  5.   //1月份是用0来表示的,所以2002年10月12日,应表示为2002-9-12
  6. var newDate=new Date(arys[0],arys[1]-1,arys[2]);
  7.   return newDate;
  8. }

4、日期转字符串
  1. function strToDate(str)
  2. {
  3.   var val=Date.parse(str);
  4.   var newDate=new Date(val);
  5.   return newDate;
  6. }

5、自己写的jQuery时间判断,使用了上面的某些函数
  1. $(":button").click(function(){
  2.         if($(":text:eq(0)").val() =='' ||$(":text:eq(1)").val() =='' ){
  3.             alert("请先填写查询时间!");
  4.             return false;
  5.         }checkSpecialChar
  6.         if(!checkSpecialChar($(":text:eq(0)").val()) || !checkSpecialChar($(":text:eq(0)").val()) ){
  7.             alert("时间格式错误!");
  8.             return false;
  9.         }
  10.         var arys1= new Array();
  11.         var arys2= new Array();
  12.         arys1=$(":text:eq(0)").val().split('-');
  13.         arys2=$(":text:eq(1)").val().split('-');
  14.         
  15.   //1月份是用0来表示的,所以2002年10月12日,应表示为2002-9-12
  16.         var newDate1 = new Date(arys1[0],arys1[1]-1,arys1[2]);
  17.         var newDate2 = new Date(arys2[0],arys2[1]-1,arys2[2]);
  18.         
  19.         if(newDate1 > newDate2 ){
  20.             alert("起始日期不能大于终止日期!");
  21.             return false;
  22.         }
  23.         $("form[name='form1']").submit();
  24.     });


阅读(5082) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~