首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >日期验证

日期验证
EN

Stack Overflow用户
提问于 2010-12-31 15:17:05
回答 2查看 864关注 0票数 2

我已经使用javascript编写了一个函数,用于验证从日历到文本框中选择的日期和当前日期。我没有得到一个正确的结果。文本框中显示的日期格式为"01-Oct-2010“。我创建的函数如下:

代码语言:javascript
运行
复制
function CheckDate() {
    var today = new Date();
    var startDate = document.getElementById("<%=txtStartDate.ClientID %>").value;
    var endDate = document.getElementById("<%=txtEndDate.ClientID %>").value;

    if (Date.parse(endDate) >= today) {
        alert("End Date should not be greater than Today");
    }

    return true;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-31 15:22:51

代码语言:javascript
运行
复制
var myDt=new Date(); 
myDOB = document.getElementById('dateField').value.split('-');
myDate = myDOB[0];
myMonth= getMonthInDigit(myDOB[1]);
myYear = myDOB[2];
var now = new Date();
myDt.setFullYear(myYear,myMonth,myDate); //here year, month, date value should be parsed from the value u get
var diff = (now.getTime() - myDt.getTime()) 
if(diff < 0){ 
  alert("End Date should not be greater than Today"); 
}

你可以使用上面的javascript代码。

注:根据需要制作返回值为数字的getMonthInDigit函数。

票数 2
EN

Stack Overflow用户

发布于 2010-12-31 16:04:29

  1. remove对today.getTime()进行
  2. 测试,因为Date.parse返回的是时间戳,而不是日期对象

简单的改变

代码语言:javascript
运行
复制
if (Date.parse(endDate) >= today) {

代码语言:javascript
运行
复制
if (Date.parse(endDate.replace(/-/g," ")) >= today.getTime()) {

您可能希望标准化日期,因为时间戳可能比创建日期时多几毫秒:

代码语言:javascript
运行
复制
var endTime = new Date(Date.parse(endDate.replace(/-/g," ")).setHours(0,0,0,0).getTime();
var today = new Date().setHours(0,0,0,0).getTime();
if (endTime > today) {
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4568726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档