`
huibin
  • 浏览: 756974 次
  • 性别: 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());
}

分享到:
评论

相关推荐

    Delphi中判断字符串是否符合日期格式.pdf

    在Delphi编程中,判断一个字符串是否符合日期格式是一个常见的任务。这个任务通常涉及到字符串处理、日期时间操作以及条件判断。下面将详细解释这个`TF_tn.IsDate`函数实现的逻辑。 首先,函数接收一个名为`Var...

    oracle日期字符串的相互转换

    #### 三、日期转字符串:`TO_CHAR()` 使用`TO_CHAR()`函数可以将日期类型的数据转换为指定格式的字符串。 **示例:** ```sql SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd') FROM DUAL; ``` **查询结果:**2008-11-14 **...

    应用java实现日期型字符串和日期之间的相互转换(源代码)

    1. **日期型字符串转日期对象:** 在Java中,我们可以使用SimpleDateFormat或DateTimeFormatter将日期型字符串转换为日期对象。例如: ```java import java.text.SimpleDateFormat; import java.util.Date; ...

    C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法

    在C#和.NET框架中,将字符串转换为DateTime类型是一个常见的任务,特别是在处理用户输入或者从数据库读取日期和时间信息时。以下是对标题和描述中提到的三种方法的详细说明: 1. **Convert.ToDateTime(string)** ...

    String.Format数字格式化输出

    在C#中,`String.Format`方法是进行字符串格式化的一种非常实用的方式。它允许我们对数字、日期、时间等数据类型进行精确的格式控制,使得输出更加符合需求或者易于阅读。本文将详细介绍`String.Format`方法中的几种...

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

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

    Oracle中的日期和字符串互相转换

    Oracle提供了几个强大的内置函数来实现日期与字符串之间的转换: - **TO_DATE()**:将字符串转换为日期类型。 - **TO_CHAR()**:将日期或数字转换为字符串。 ##### 使用示例: 1. **使用TO_CHAR()函数将日期转换...

    AccessSQLServerOracle日期格式转成字符串函数应用大全.docx

    SQL SERVER 2000提供了`Cast()`和`Convert()`两个函数来实现日期到字符串的转换。 - `Cast()`函数的语法: ```sql CAST (expression AS data_type[(length)]) ``` `expression`是待转换的表达式,`data_type`是目标...

    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 ...

    TO_DATE用法详解.doc

    该函数的语法为:TO_DATE(date_string, format_string),其中 date_string 是要转换的日期字符串,format_string 是日期字符串的格式。 1. 日期字符串格式 日期字符串可以有多种格式,例如:YYYY-MM-DD HH24:MI:SS...

    AccessSQLServerOracle日期格式转成字符串函数应用大全.pdf

    例如,在SQL SERVER 2000中,日期格式112代表'yyyyMMdd',而在ORACLE中,'yyyyMMDD'可以直接作为格式字符串传递。 总结起来,转换日期型字段为字符型是为了更好地适应各种查询需求,如模糊匹配、比较等。ACCESS的`...

    Java日期时间字符串和毫秒相互转换的方法

    使用Calendar和SimpleDateFormat类可以实现日期时间字符串转换成毫秒,而使用Date和SimpleDateFormat类可以实现毫秒转换成日期时间字符串。不同的日期时间字符串格式可以使用SimpleDateFormat类来实现。

    Clickhouse 时间日期函数

    1. toDate(date_expression):将日期表达式转换为日期类型。例如,toDate('2022-01-01')将返回日期类型的值'2022-01-01'。 2. toDateTime(datetime_expression):将日期时间表达式转换为日期时间类型。例如,to...

    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)..... 等等

    js时间比较(yyyymmdd)

    在JavaScript中,我们通常使用`Date`对象来处理日期和时间,但这个对象不直接支持"yyyymmdd"格式的字符串比较。 1. 创建`Date`对象: 在JavaScript中,创建一个`Date`对象通常需要提供日期和时间信息。然而,直接...

    Oracle中TO-DATE格式.docx

    TO_DATE 函数的基本语法是 TO_DATE( string, format ),其中 string 是要转换的字符串,format 是转换的格式。 在 TO_DATE 函数中,format 可以是各种不同的格式,例如 'YYYY-MM-DD HH24:MI:SS'、'DD-MON-RR'、'...

    C#日期格式字符串的相互转换操作实例分析

    使用Convert.ToDateTime(string, IFormatProvider)方法,可以将日期格式字符串转换为DateTime类型的对象,并且可以指定日期格式字符串的格式。例如: ```csharp string dateString = "2011/05/26"; ...

    时间日期生成字符串

    下面我们将深入探讨如何在LabVIEW中实现时间日期生成字符串的操作。 首先,LabVIEW中的日期和时间数据类型通常表示为“日期/时间”(Date/Time)簇。这个簇包含了年、月、日、小时、分钟、秒以及毫秒等信息。要将...

    C# string格式的日期时间字符串转为DateTime类型的方法

    在C#编程中,将字符串转换为DateTime类型是常见的操作,尤其在处理日期和时间数据时。本文将详细讲解三种主要方法,帮助开发者将string格式的日期时间字符串转换为DateTime类型。 **方法一:Convert.ToDateTime...

    e语言-将指定的时间转换成需要的格式

    - 对于"0"(YYYYMMDD)格式,你可以直接使用日期时间结构体的年、月、日字段,通过连接字符串实现。 - 对于"1"(MMDDYYYY)和"2"(DDMMYYYY)格式,需要重新排列这些字段的顺序。 4. 错误处理:在处理过程中,...

Global site tag (gtag.js) - Google Analytics