`
zeng_84_long
  • 浏览: 58112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Js处理日期格式

阅读更多
<script   language="javascript">  
  //参数dt:日期时间字符串  
  //参数msg:控件描述  
  //参数fm:日期时间格式  
  //参数type:语种类型,如空:公元,1:min  
  function   checkDateByMask(dt,msg,fm,type){  
   
  //1.定义特殊的格式  
  var   N=10;  
  var   format=new   Array(N);  
  format[0]="yyyy/MM/dd";  
  format[1]="yyyy-MM-dd";  
  format[2]="yy/MM/dd";  
  format[3]="yy-MM-dd";  
   
  format[4]="yyyy/MM/dd   hh:mm:ss";  
  format[5]="yyyy-MM-dd   hh:mm:ss";  
  format[6]="yy/MM/dd   hh:mm:ss";  
  format[7]="yy-MM-dd   hh:mm:ss";  
   
  format[8]="hh:mm:ss";  
  format[9]="hh:mm";  
   
  //2.定义错误提示  
  msg="\'"+msg+"\'";  
  var   errPar=msg+"参数有误";  
  var   errFormat=msg+"请按如下格式输入:\n"+fm;  
  var   errYear=msg+"年份不对";  
  var   errMonth=msg+"月份不对";  
  var   errDay=msg+"日期不对";  
  var   errHour=msg+"小时不对";  
  var   errMinute=msg+"分钟不对";  
  var   errSecond=msg+"秒钟不对";  
   
         
  //3.判断参数是否正确  
  var   b=false;  
  for(var   i=0;i<N;i++){  
            if(format[i].toLowerCase()==fm.toLowerCase()){  
                          b=true;break;  
            }  
  }  
  if(!b){  
            return   getErrorMsg(errPar);  
  }  
   
  //4.补足位数  
  if(dt.length!=fm.length){  
            var   dt4=dt.replace(/[^0-9]/g,",")  
            var   dtarr=dt4.split(",");  
            var   dt3="";  
            var   dtlen=0;  
            for(var   i=0;i<dtarr.length;i++){  
                    var   len=dtarr[i].length;  
                    dtlen=dtlen+len+1;  
                    if(len<1)  
                                  dt3=dt3+"00"+dtarr[i];  
                    else   if(len<2)  
                                  dt3=dt3+"0"+dtarr[i];  
                    else  
                                  dt3=dt3+dtarr[i];  
                                   
                    dt3=dt3+dt.substr(dtlen-1,1);  
                    }  
            dt=dt3;  
  }  
  //5.判断时间字符串与格式参数是否相符  
  if(dt.length!=fm.length){                    
            return   getErrorMsg(errFormat);  
  }  
  else{  
            var   dt1=dt.replace(/[0-9]/g,"%d");  
            var   dt2=fm.replace(/[ymdhs]/gi,"%d");  
            //alert(dt1+"\n"+dt2);  
            if(dt1!=dt2){  
                        return   getErrorMsg(errFormat);  
            }  
  }            
                     
  //5.判断日期时间是否正确  
  try{  
            fm=fm.replace(/Y/g,"y").replace(/D/g,"d");  
            var   iyyyy=fm.indexOf("yyyy");  
            var   iyy=fm.indexOf("yy");  
            var   imm=fm.indexOf("MM");  
            var   idd=fm.indexOf("dd");  
            var   ihh=fm.indexOf("hh");  
            var   imi=fm.indexOf("mm");  
            var   iss=fm.indexOf("ss");  
           
            var   newdt=new   Date();    
             
            var   year="";  
            //Year          
            try{  
                    var   isyear=false;  
                    if(iyyyy>-1){                                  
                          year=dt.substr(iyyyy,4);  
                          isyear=true;  
                    }  
                    else   if(iyy>-1){  
                          year=dt.substr(iyy,2);  
                          isyear=true;  
                    }  
                    if(isyear){  
                          if(type=="1"){//  
                                year=parseInt(year)+1911;  
                          }  
                          newdt.setFullYear(year);  
                    }        
            }  
            catch(e1){  
                    return   getErrorMsg(errYear+e1.toString());  
            }  
             
            //Month  
            try{            
                    if(imm>-1){  
                            if(dt.substr(imm,2)>"12"||dt.substr(imm,2)<"01"){  
                                    return   getErrorMsg(errMonth);  
                            }  
                            newdt.setMonth(dt.substr(imm,2)-1);  
                    }  
            }  
            catch(e1){  
                    return   getErrorMsg(errMonth+e1.toString());  
            }  
             
            //Day  
            try{            
                    if(idd>-1){  
                            if(dt.substr(idd,2)>"31"||dt.substr(idd,2)<"01"){  
                                    return   getErrorMsg(errDay);  
                            }  
                            newdt.setDate(dt.substr(idd,2));      
                    }  
            }  
            catch(e1){  
                    return   getErrorMsg(errDay);  
            }  
             
            //Hour  
            try{  
                    if(ihh>-1){  
                            if(dt.substr(ihh,2)>"23"){  
                                    return   getErrorMsg(errHour);  
                            }  
                            newdt.setHours(dt.substr(ihh,2));  
                    }  
            }  
            catch(e1){  
                    return   getErrorMsg(errHour);  
            }  
             
            //Minute  
            try{  
                    if(imi>-1){  
                            if(dt.substr(imi,2)>"59"){  
                                    return   getErrorMsg(errMinute);  
                            }  
                            newdt.setMinutes(dt.substr(imi,2));  
                    }  
            }  
            catch(e1){  
                    return   getErrorMsg(errMinute);  
            }  
             
            //Second  
            try{  
                    if(iss>-1){  
                            if(dt.substr(iss,2)>"59"){  
                                    return   getErrorMsg(errSecond);  
                            }  
                            newdt.setSeconds(dt.substr(iss,2));  
                    }                    
            }  
            catch(e1){  
                    return   getErrorMsg(errSecond);  
            }  
                       
            //Year  
            if(iyyyy>-1){  
                      if(newdt.getFullYear()!=year){  
                                    return   getErrorMsg(errYear);    
                      }  
            }  
            else   if(iyy>-1){  
                      if(newdt.getFullYear()!=year){  
                                    return   getErrorMsg(errYear);    
                      }  
            }  
             
            //Month  
            if(imm>-1){  
                      if(newdt.getMonth()!=(dt.substr(imm,2)-1)){  
                                    return   getErrorMsg(errDay);    
                      }  
            }  
             
            //Day                
            if(idd>-1){  
                      if(newdt.getDate()!=dt.substr(idd,2)){  
                                    return   getErrorMsg(errDay);    
                      }    
            }          
                           
   
            //Hour  
            if(ihh>-1){  
                      if(newdt.getHours()!=dt.substr(ihh,2)){  
                                    return   getErrorMsg(errMinute);    
                      }    
            }  
             
            //Minute  
            if(imi>-1){  
                      if(newdt.getMinutes()!=dt.substr(imi,2)){  
                                    return   getErrorMsg(errSecond);    
                      }    
            }  
             
            //Second  
            if(iss>-1){                      
                      if(newdt.getSeconds()!=dt.substr(iss,2)){  
                                    return   getErrorMsg(errSecond);    
                      }  
            }    
            alert(newdt);  
  }      
  catch(e){  
            return   getErrorMsg(e.toString());    
  }  
   
                           
  }  
   
  function   getErrorMsg(msg){  
            alert(msg);  
            return   false;  
            }  
   
  function     isGyDate(obj,msg){  
            if(!checkDateByMask(obj.value,msg,"yyyy/MM/dd",""))  
                    obj.focus();            
            }  
  function     isMgDate(obj,msg){  
            if(!checkDateByMask(obj.value,msg,"yy/MM/dd","1"))  
                    obj.focus();            
            }  
             
  function     isGyDateTime(obj,msg){  
            if(!checkDateByMask(obj.value,msg,"yyyy/MM/dd   hh:mm:ss",""))  
                    obj.focus();            
            }  
  function     isMgDateTime(obj,msg){  
            if(!checkDateByMask(obj.value,msg,"yy/MM/dd   hh:mm:ss","1"))  
                    obj.focus();            
            }        
                 
  function     isTime(obj,msg){  
            if(!checkDateByMask(obj.value,msg,"hh:mm:ss",""))  
                    obj.focus();            
            }  
             
  function   checkDate(){  
          return   checkDateByMask(document.all.aa.value,"aa",document.all.formatStr.value,"");  
  }  
  </script>  
   
   
  <form   name="form1">  
  <select   name="formatStr">  
  <option   value="yyyy/MM/dd">yyyy/MM/dd</option>  
  <option   value="yyyy-MM-dd">yyyy-MM-dd</option>  
  <option   value="yy/MM/dd">yy/MM/dd</option>  
  <option   value="yy-MM-dd">yy-MM-dd</option>  
   
  <option   value="yyyy/MM/dd   hh:mm:ss">yyyy/MM/dd   hh:mm:ss</option>  
  <option   value="yyyy-MM-dd   hh:mm:ss">yyyy-MM-dd   hh:mm:ss</option>  
  <option   value="yy/MM/dd   hh:mm:ss">yy/MM/dd   hh:mm:ss</option>  
  <option   value="yy-MM-dd   hh:mm:ss">yy-MM-dd   hh:mm:ss</option>  
   
  <option   value="hh:mm:ss">hh:mm:ss</option>  
  <option   value="hh:mm">hh:mm</option>  
  </select>  
  <input   type="text"   name="aa"   size="20"><br>  
   
  <input   type="button"   name="log1"   value="Submit"   onclick="checkDate()">  
   
  </form>  
分享到:
评论

相关推荐

    javascript 日期数字文本格式化

    这些库提供了丰富的选项和预定义的格式,可以方便地处理各种复杂的日期和时间格式。 总结来说,这个主题涵盖了JavaScript中日期和数字的格式化技术,涉及到自定义工具函数的编写,以及如何在实际项目中应用这些工具...

    Js获取当前日期时间及格式化代码

    - 常见的日期时间格式化方法可以将Date对象转换为指定格式的字符串。 - `Date.prototype.isLeapYear` 方法判断是否为闰年。 - `Date.prototype.Format` 方法自定义格式化日期时间。 - 格式化中常用的是:YYYY...

    javascript精确计算日期处理金额格式化

    总的来说,JavaScript在处理日期和金额格式化方面虽然有原生支持,但在实际应用中往往需要借助第三方库来提升效率和准确性。熟悉并掌握这些库的使用,对于提升JavaScript开发能力具有重要意义。

    js中将日期数据转换格式

    JavaScript的内置`Date`对象提供了丰富的功能来处理日期和时间,但默认的字符串表示可能并不符合我们的需求,因此需要自定义格式化。下面我们将深入探讨如何在JavaScript中将日期数据转换为所需的格式。 首先,让...

    js 时间格式化

    这篇博客文章“js 时间格式化”可能探讨了如何使用JavaScript来优雅地展示和处理日期与时间。 在JavaScript中,`Date`对象是处理日期和时间的基础。创建一个`Date`对象可以获取当前时间,例如: ```javascript var ...

    javascript日期格式化

    JavaScript是Web开发中不可或缺的一部分,尤其在处理日期和时间的操作上。日期格式化是一个常见的需求,无论是为了展示用户友好的日期格式,还是在处理服务器数据交换时。在JavaScript中,我们可以使用内置的`Date`...

    JavaScript 判断日期格式是否正确的实现代码

    http://www.cnblogs.com/GuominQiu 代码如下: //————————————————————————— //判断日期格式是否正确 //返回值是错误信息, 无错误信息即表示合法日期字符串 function isDateString(strDate...

    js 日期格式 脚本下载 例子

    在这个例子中,当用户点击按钮时,`formatDate`函数会被调用,将当前日期时间格式化后显示在页面的`&lt;p&gt;`元素中。 `doc.txt`文件可能包含了关于如何使用这些代码的说明,包括如何运行示例,以及`Control.js`中可能...

    JS处理json日期格式化问题

    对于从C#返回的日期字段,当进行JSON序列化后,在前台JS里显示的并不是真正的日期,这让我们感觉很不爽,我们不可能为了这东西,把所有日期字段都变成string吧,所以,找了一个JS的扩展方法,来实现这个功能 ...

    用js来验证日期的格式正确与否

    ### 使用JavaScript验证日期格式 在Web开发中,经常需要对用户输入的数据进行验证,确保其符合预期的格式或规则。本文将详细介绍如何使用JavaScript来验证日期格式的正确性。我们将通过一个具体的示例来探讨这一...

    JavaScript - 格式化日期时间.zip

    此外,除了手动格式化,还可以使用一些库,如Moment.js或date-fns,它们提供了更丰富的日期时间处理功能和易用的API,可以轻松实现各种复杂的日期时间格式化需求。不过,对于基础的格式化需求,了解和掌握JavaScript...

    dateformatjs一个超轻量级的JS日期处理库

    总的来说,`dateformat.js` 是一个强大且实用的日期处理工具,它提供了丰富的日期格式化选项,简单易用的API,以及良好的国际化支持。无论是在小规模的个人项目还是大型的企业应用中,都能找到它的一席之地。

    js日期格式转换

    JavaScript的`Intl.DateTimeFormat` API可以提供更高级的日期和时间格式化功能。例如,如果你想按照"MM/dd/yyyy"格式输出日期,可以这样做: ```javascript let date = new Date(); let formatter = new Intl....

    javascript的trim和日期时间格式化函数

    ### JavaScript中的Trim函数和日期时间格式化函数 在JavaScript中,字符串处理和日期操作是非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用自定义方法实现字符串的Trim功能以及日期...

    详解js中常规日期格式处理、月历渲染和倒计时函数

    通过以上这些函数,开发者可以轻松地处理日期格式、创建月历视图以及实现倒计时功能,而不需要依赖额外的库。这些基础的日期处理方法不仅可以提高代码的效率,还能减少项目的体积,适用于各种轻量级的前端项目。在...

    js日期时间控件 JavaScriptjs日期时间控件 jsp

    JavaScript日期时间控件是网页开发中常用的一种组件,主要用于用户在网页上选择或输入日期和时间。在JavaScript中,处理日期和时间的核心对象是`Date`。本篇将深入探讨JavaScript日期时间控件的实现原理、使用方法...

    格式化数据库日期JS

    这在处理后端序列化的JSON数据时非常常见,尤其是在需要将日期时间展示给用户或者进行进一步处理的情况下。我们将探讨以下关键知识点: 1. **理解JSON日期格式**:解释从数据库获取的日期通常采用的格式。 2. **...

    javascript验证日期格式

    其中,日期格式验证是JavaScript中一个常见且实用的功能,它可以帮助开发者确保用户输入的日期符合预设的格式,从而避免数据处理中的错误。本文将深入探讨如何使用JavaScript来验证日期格式,理解其工作原理,并分析...

    js 日期 format 格式化

    在Web应用中,日期时间格式化的灵活性对于提高用户体验至关重要,因此掌握这一技能非常实用。 #### 描述:对前端日期进行格式化 这段描述提供了关于日期格式化功能的具体用法示例,展示了如何使用自定义格式字符串...

    js验证日期格式,比较日期大小,判断两日期年月是否相同借鉴.pdf

    以上三个函数提供了JavaScript中处理日期的基本能力:比较日期大小、验证日期格式以及判断两个日期是否在同一个月份。这些函数可以很好地帮助开发者在Web应用中进行日期相关的逻辑处理,从而提高应用程序的功能性和...

Global site tag (gtag.js) - Google Analytics