`
huibin
  • 浏览: 740422 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

分享:javascript中实现字符串转日期(string.toDate("yyyyMMdd"))

    博客分类:
  • JS
 
阅读更多

javascript 的编码能力比较弱,但并不代码它不能做,只不过,需要你花一点功夫,前段时间在做日历的时候,需要从textbox读取日期,问题的关键是textbox 的日期可能是美国标准,可能是中国标准等等,没有办法将之转成日期格式,也就不能将日期在日历中定位到当天。在csdn上问了一个问题,结果没有人答得合适,我一怒之下,自儿写了一个,还行,能用。
说说需求吧,基本上很简单,就是能识别yyyymmdd及yymd这样的日期格式,或者yy、yyyy、M、MM、d、dd的任意组合。如yyyy年MM月dd日,匹配2009年06月10日。
先看代码吧:
js 代码
 

JScript code
    //将字符串转换为日期 
     String.prototype.toDate = function(format) { 
         pattern = format.replace("yyyy", "(\\~1{4})").replace("yy", "(\\~1{2})") 
 .replace("MM", "(\\~1{2})").replace("M", "(\\~1{1,2})") 
 .replace("dd", "(\\~1{2})").replace("d", "(\\~1{1,2})").replace(/~1/g, "d"); 
  
         var returnDate; 
         if (new RegExp(pattern).test(this)) { 
             var yPos = format.indexOf("yyyy"); 
             var mPos = format.indexOf("MM"); 
             var dPos = format.indexOf("dd"); 
             if (mPos == -1) mPos = format.indexOf("M"); 
             if (yPos == -1) yPos = format.indexOf("yy"); 
             if (dPos == -1) dPos = format.indexOf("d"); 
             var pos = new Array(yPos + "y", mPos + "m", dPos + "d").sort(); 
             var data = { y: 0, m: 0, d: 0 }; 
             var m = this.match(pattern); 
             for (var i = 1; i  < m.length; i++) { 
  
                 if (i == 0) return; 
                 var flag = pos[i - 1].split('')[1]; 
                 data[flag] = m[i]; 
             }; 
  
             if (data.y.toString().length == 2) { 
                 data.y = parseInt("20" + data.y); 
             } 
             data.m = data.m - 1; 
             returnDate = new Date(data.y, data.m, data.d); 
         } 
         if (returnDate == null || isNaN(returnDate)) returnDate = new Date(); 
         return returnDate; 
     }


   

  代码很有意思,有两个地方解释一下,一个是前面的正则,之所以用~1,是因为d是日期格式的天,会被替换掉,所以用用~1,再替换回来。第二个地方是 ymd的顺序,这个地方很重要,因为日期可能是MM/dd/yyyy,也可以是yyyy-mm-dd,所以先放到一个数组中,根据indexof排序。

 

 

比较时间

function checkDate(c_time,e_time){
if($("#"+c_time).val().length==0||$("#"+e_time).val().length==0){return false;}
var c_date=$("#"+c_time).val().toDate("yyyy-MM-dd");
var e_date=$("#"+e_time).val().toDate("yyyy-MM-dd");
if(c_date.getTime()<e_date.getTime()){
$("#"+e_time).val("");
alert("提醒截止日期不能大于日程时间!");
return false;
}
return true;

 //alert(c_date.getTime()+" "+e_date.getTime());
}

分享到:
评论

相关推荐

    js字符串日期yyyy-MM-dd转化为date示例代码

    最近遇到一个问题,就是获取表单中的日期往后台通过json方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN 找了些资料,发现是由于Date.parse()函数对日期格式有要求:详细参考 Date.parse函数 对于js操作日期: ...

    java 时间转换工具

    3.支持字符串转java.util.Date 支持字符串格式: yyyyMMdd yyyyMMddHH yyyyMMddHHmm yyyyMMddHHmmss yyyy-MM-dd yyyy.MM.dd yyyy/MM/dd yyyy MM dd 年月日格式可以和下面的交换 yyyyMMdd HH yyyyMMdd HHmm ...

    将长时间格式字符串转换为时间

    * 获取现在时间 * 获取时间 小时:分;秒 HH:mm:ss * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss ... * 根据一个日期,返回是星期几的字符串

    DateUtil.java 时间日期处理工具类

    包含"yyyy-MM-dd"、"yyyy-MM-dd HH:mm:ss"、"yyyyMMdd"、"yyyyMMddHHmmss"、"yyyy-MM"、...4.Date转String dateToString(Date date, String format); 5.Timestamp转String timestampToString(Timestamp ts)..... 等等

    javascript常用工具集(带使用示例)

    * 从身份证号中得到生日和...* 正则表达式实现JavaScript日期格式化对Date的扩展,将 Date 转化为指定格式的String * 返回当天是星期几 * 常用正则表达式 * 将阿拉伯数字翻译成中文的大写数字 * 将日期转换成中文日期

    SAP-ABAP-4编程语法汇总(中文版)

    D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’. F: 浮点数, 长度为8, 例如: 4.285714285714286E-01 I: 整数 范围 :-2^31 ~ 2^31-1 N: 数值组成的字符串: 011, ‘302’. P: packed 数,用于...

    abap4 DATA ELEMENT.doc

    D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’. F: 浮点数, 长度为8, 例如: 4.285714285714286E-01 I: 整数 范围 :-2^31 ~ 2^31-1 N: 数值组成的字符串: 011, ‘302’. P: packed 数,用于...

    时间日期生成字符串

    LabVIEW用日期来生成字符串可以用来命名或创建文件夹

    java学习小项目(简单说明)

    导入图片数据数据,图片数据格式为 YYYYMMDD中文名.JPG 导入数据文件夹目录如下: 学校 班一 YYYYMMDD中文名.JPG YYYYMMDD中文名.JPG .... 班二 YYYYMMDD中文名.JPG ... ... 导入数据时只要选择:学校 即可

    javascript日期对象格式化为字符串的实现方法

    原理:用正则表达式将日期模板中的日期元素[如yyyy, MM, dd]和分隔符拆分成数组,然后用实际的值替换日期元素形成日期字符串. 实现共有两个函数,粘贴可运行. 扩展方式: 示例中只支持了年月日时分秒毫秒的元素,如果...

    java时间格式大全(算法源码)

    * @return 字符串 yyyyMMdd HHmmss */ public static String getStringToday() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss"); String dateString ...

    jquery 将当前时间转换成yyyymmdd格式的实现方法

    function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate.getFullYear(); var mm = mydate.getMonth()+1 if(mydate.getMonth()&gt;9){ str += mm; } else{ str += ...

    js时间比较(yyyymmdd)

    NULL 博文链接:https://qify.iteye.com/blog/702571

    EXCEL日期格式:YYYYMMDD转换成yyyy-mm-dd

    EXCEL中经常遇到YYYYMMDD存储的日期需要转为YYYY-MM-DD格式.

    java代码验证日期格式正则表达式(包含闰年验证)带注释

    * "yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM/dd","yyyy/MM/dd HH:mm:ss" * "yyyy_MM...

    JAVA时间处理类

    * 将某个日期格式字符串转换成另一指定格式日期字符串 例:传入"2009/1/15 16:58:00","yyyy/MM/dd * hh:mm:ss","yyyy年M月d日 a h时m分s秒" 则返回 “2009年1月15日 下午 4时58分0秒” * * @param dateStr ...

    javascript日期比较方法实例分析

    将字符串为yyyyMMdd格式的字符串转换为日期类型 date就是日期字符串 */ function getDate(date){ var year = date.substr(0,4);//substr()是从0开始计算的 var month = date.substr(4,2);//月份是0到11个月 var...

    一个long型与Date型时间转换工具

    一个long型与Date型时间转换工具,适合测试人员使用,内附JAVA代码

    jeDate-YYYYMMDD形式.rar

    jeDate-YYYYMMDD形式,引入压缩包中的css和js,执行前端代码,点击日期框,出现YYYYMMDD形式的日期选择样式。

    mysql的日期和时间函数

    EXTRACT(type FROM date) EXTRACT() 函数使用与 DATE_ADD() 或 DATE_SUB() 一致的间隔类型,但是它用于指定从日期中提取的部分,而不是进行日期算术运算。 mysql&gt; SELECT EXTRACT(YEAR FROM "1999-07-02"); -&gt; 1999...

Global site tag (gtag.js) - Google Analytics