dd / mm / yyyy日期比较问题 [英] dd/mm/yyyy Date Compare Problem
问题描述
我有一个工作脚本可以将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屋!