dd / mm / yyyy日期比较问题 [英] dd/mm/yyyy Date Compare Problem

查看:68
本文介绍了dd / mm / yyyy日期比较问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我有一个工作脚本可以将dd / mm / yyyy文本框日期条目

转换为yyyy / mm / dd并进行比较它到当前日期,通过asp.net自定义验证器给出错误

,它如下:


函数doDateCheckNow(source,args)

{

var oDate = document.getElementById(source.controltovalidate); //

dd / mm / yyyy

var arrDate = oDate.value.split(" /");

var useDate =新日期(arrDate [2],arrDate [1] -1,arrDate [0]); //

yyyy / mm / dd

var today = new Date();


if(useDate< = today )

{

args.IsValid = true;

}

else

{

args.IsValid = false;

}

}


我曾尝试过使用改编版本来比较输入文本框(dodTxtBx)的

日期与加载到

asp.net标签(dobLbl)中的文本:


函数doDateCheckDod(dodTxtBx,dobLbl,args)

{

//将DOD转换为javascript日期格式

var oDodDate = dodTxtBx; // dd / mm / yyyy

var arrDodDate = oDodDate.value.split(" /");

var useDodDate = new Date(arrDodDate [2], arrDodDate [1],

arrDodDate [0]); // yyyy / mm / dd


//将DOB转换为javascript日期格式

var oDobDate = dobLbl; // dd / mm / yyyy

var arrDobDate = oDobDate.value.split(" /");

var useDobDate = new Date(arrDobDate [2], arrDobDate [1],

arrDobDate [0]); // yyyy / mm / dd


if(useDobDate< useDodDate)

{

args.IsValid = true; < br $>
}

其他

{

args.IsValid = false;

} < br $>
}


但这会在页面运行时在页面上产生错误,并且总是会失败

自定义验证器。


有什么想法吗?


非常感谢

解决方案

Assimalyst写道:



我有一个工作脚本,将dd / mm / yyyy文本框日期条目转换为yyyy / mm / dd并进行比较它到当前日期,通过asp.net自定义验证器给出错误
,如下:

函数doDateCheckNow(source,args)
{
var oDate = document.getElementById(source.controltovalidate); //
dd / mm / yyyy
var arrDate = oDate.value.split(" /");
var useDate = new Date(arrDate [2],arrDate [1] -1,arrDate [0]); //
yyyy / mm / dd
var today = new Date();

if(useDate< = today)

args。 IsValid = true;
}

{
args.IsValid = false;
}
}

我当时有尝试使用这个的改编版本来比较输入到文本框(dodTxtBx)的日期和加载到
asp.net标签(dobLbl)中的文本:

function doDateCheckDod(dodTxtBx,dobLbl,args)
//将DOD转换为javascript日期格式
var oDodDate = dodTxtBx; // dd / mm / yyyy
var arrDodDate = oDodDate.value.split(" /");
var useDodDate = new Date(arrDodDate [2],arrDodDate [1],
arrDodDate [0]); // yyyy / mm / dd
//将DOB转换为javascript日期格式
var oDobDate = dobLbl; // dd / mm / yyyy
var arrDobDate = oDobDate.value.split(" /");
var useDobDate = new Date(arrDobDate [2],arrDobDate [1],
arrDobDate [0]); // yyyy / mm / dd

if(useDobDate< useDodDate)
{
args.IsValid = true;
}
其他 {
args.IsValid = false;
}


但这会在页面运行时在页面上产生错误,并且始终无法使用
自定义验证程序。

任何想法为什么?

非常感谢




正确调用时,你的功能对我来说很好:( IE6& Firefox

1.5)


< input type =" text" ID = QUOT; timetest" onblur =" doDateCheckNow(this);">


函数doDateCheckNow(source){

var oDate = source; // dd / mm / yyyy

var arrDate = oDate.value.split(" /");

var useDate = new Date(arrDate [2], arrDate [1] -1,arrDate [0]);

// yyyy / mm / dd

var today = new Date();


if(useDate< = today)

{

alert(" true");

}

else

{

alert(" false");

}


}


你怎么称呼你的功能?在每个

变量设置/更改后尝试发出一些警报,以确保从您的字段中获取文本数据




我不知道这与ASP有什么关系...


- JS


< blockquote> Assimalyst写道:

if(useDate< = today)




你不能用这种方式比较日期。相反,您应该比较他们的

..getTime()值。


对于解析日期,格式转换和比较,请参阅我的日期
http://www.JavascriptToolbox.com/lib上的
库/ date / 可能会让你的生活更轻松。


-

Matt Kruse
http://www.JavascriptToolbox.com
http://www.AjaxToolbox.com


jshanman写道:

Assimalyst写道:



我有一个工作脚本转换dd / mm / yyyy文本框日期
条目到yyyy / mm / dd并将其与当前日期进行比较,通过asp.net自定义验证器给出
错误,如下:

func doDateCheckNow(source,args)
var oDate = document.getElementById(source.controltovalidate); //
dd / mm / yyyy
var arrDate = oDate.value.split(" /");
var useDate = new Date(arrDate [2],arrDate [1] -1,arrDate [0]); //
yyyy / mm / dd
var today = new Date();

if(useDate< = today)

args。 IsValid = true;
}

{
args.IsValid = false;
}
}

我当时有尝试使用这个的改编版本来比较输入到文本框(dodTxtBx)的日期和加载到
asp.net标签(dobLbl)中的文本:

function doDateCheckDod(dodTxtBx,dobLbl,args)
//将DOD转换为javascript日期格式
var oDodDate = dodTxtBx; // dd / mm / yyyy
var arrDodDate = oDodDate.value.split(" /");
var useDodDate = new Date(arrDodDate [2],arrDodDate [1],
arrDodDate [0]); // yyyy / mm / dd
//将DOB转换为javascript日期格式
var oDobDate = dobLbl; // dd / mm / yyyy
var arrDobDate = oDobDate.value.split(" /");
var useDobDate = new Date(arrDobDate [2],arrDobDate [1],
arrDobDate [0]); // yyyy / mm / dd

if(useDobDate< useDodDate)
{
args.IsValid = true;
}
其他 {
args.IsValid = false;
}


但这会在页面运行时在页面上产生错误,并且始终无法使用
自定义验证程序。

任何想法为什么?

非常感谢



正确调用时,您的功能正常工作:(IE6& Firefox)
1.5)




为什么它在NN 4中不起作用?


Hi,

I have a working script that converts a dd/mm/yyyy text box date entry
to yyyy/mm/dd and compares it to the current date, giving an error
through an asp.net custom validator, it is as follows:

function doDateCheckNow(source, args)
{
var oDate = document.getElementById(source.controltovalidate); //
dd/mm/yyyy
var arrDate = oDate.value.split("/");
var useDate = new Date(arrDate[2], arrDate[1]-1, arrDate[0]); //
yyyy/mm/dd
var today = new Date();

if (useDate <= today)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

I have then attempted to use an adapted version of this to compare a
date entered into a text box (dodTxtBx) with the text loaded into an
asp.net label (dobLbl):

function doDateCheckDod(dodTxtBx, dobLbl, args)
{
// Convert DOD to javascript date format
var oDodDate = dodTxtBx; // dd/mm/yyyy
var arrDodDate = oDodDate.value.split("/");
var useDodDate = new Date(arrDodDate[2], arrDodDate[1],
arrDodDate[0]); // yyyy/mm/dd

// Convert DOB to javascript date format
var oDobDate = dobLbl; // dd/mm/yyyy
var arrDobDate = oDobDate.value.split("/");
var useDobDate = new Date(arrDobDate[2], arrDobDate[1],
arrDobDate[0]); // yyyy/mm/dd

if (useDobDate < useDodDate)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

But this creates errors on the page when it runs and always fails the
custom validator.

Any ideas why?

Many Thanks

解决方案

Assimalyst wrote:

Hi,

I have a working script that converts a dd/mm/yyyy text box date entry
to yyyy/mm/dd and compares it to the current date, giving an error
through an asp.net custom validator, it is as follows:

function doDateCheckNow(source, args)
{
var oDate = document.getElementById(source.controltovalidate); //
dd/mm/yyyy
var arrDate = oDate.value.split("/");
var useDate = new Date(arrDate[2], arrDate[1]-1, arrDate[0]); //
yyyy/mm/dd
var today = new Date();

if (useDate <= today)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

I have then attempted to use an adapted version of this to compare a
date entered into a text box (dodTxtBx) with the text loaded into an
asp.net label (dobLbl):

function doDateCheckDod(dodTxtBx, dobLbl, args)
{
// Convert DOD to javascript date format
var oDodDate = dodTxtBx; // dd/mm/yyyy
var arrDodDate = oDodDate.value.split("/");
var useDodDate = new Date(arrDodDate[2], arrDodDate[1],
arrDodDate[0]); // yyyy/mm/dd

// Convert DOB to javascript date format
var oDobDate = dobLbl; // dd/mm/yyyy
var arrDobDate = oDobDate.value.split("/");
var useDobDate = new Date(arrDobDate[2], arrDobDate[1],
arrDobDate[0]); // yyyy/mm/dd

if (useDobDate < useDodDate)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

But this creates errors on the page when it runs and always fails the
custom validator.

Any ideas why?

Many Thanks



Your function works fine for me when called correctly: (IE6 & Firefox
1.5)

<input type="text" id="timetest" onblur="doDateCheckNow(this);">

function doDateCheckNow(source) {
var oDate = source; //dd/mm/yyyy
var arrDate = oDate.value.split("/");
var useDate = new Date(arrDate[2], arrDate[1]-1, arrDate[0]);
//yyyy/mm/dd
var today = new Date();

if (useDate <= today)
{
alert("true");
}
else
{
alert("false");
}

}

How are you calling your function? Try putting some alerts after each
variable is set/changes, to make sure your getting the text data from
your fields.

I don''t know that this has anything to do with ASP...

- JS


Assimalyst wrote:

if (useDate <= today)



You can''t compare dates this way. Instead, you should probably compare their
..getTime() values.

For parsing dates, converting between formats, and comparing, see my Date
library at http://www.JavascriptToolbox.com/lib/date/ which might make your
life easier.

--
Matt Kruse
http://www.JavascriptToolbox.com
http://www.AjaxToolbox.com


jshanman wrote:

Assimalyst wrote:

Hi,

I have a working script that converts a dd/mm/yyyy text box date
entry to yyyy/mm/dd and compares it to the current date, giving an
error through an asp.net custom validator, it is as follows:

function doDateCheckNow(source, args)
{
var oDate = document.getElementById(source.controltovalidate); //
dd/mm/yyyy
var arrDate = oDate.value.split("/");
var useDate = new Date(arrDate[2], arrDate[1]-1, arrDate[0]); //
yyyy/mm/dd
var today = new Date();

if (useDate <= today)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

I have then attempted to use an adapted version of this to compare a
date entered into a text box (dodTxtBx) with the text loaded into an
asp.net label (dobLbl):

function doDateCheckDod(dodTxtBx, dobLbl, args)
{
// Convert DOD to javascript date format
var oDodDate = dodTxtBx; // dd/mm/yyyy
var arrDodDate = oDodDate.value.split("/");
var useDodDate = new Date(arrDodDate[2], arrDodDate[1],
arrDodDate[0]); // yyyy/mm/dd

// Convert DOB to javascript date format
var oDobDate = dobLbl; // dd/mm/yyyy
var arrDobDate = oDobDate.value.split("/");
var useDobDate = new Date(arrDobDate[2], arrDobDate[1],
arrDobDate[0]); // yyyy/mm/dd

if (useDobDate < useDodDate)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

But this creates errors on the page when it runs and always fails the
custom validator.

Any ideas why?

Many Thanks



Your function works fine for me when called correctly: (IE6 & Firefox
1.5)



Why doesn''t it work in NN 4 ?


这篇关于dd / mm / yyyy日期比较问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆