【问题标题】:Help implementing past date validation帮助实施过去日期验证
【发布时间】:2011-08-05 23:29:52
【问题描述】:

我需要实现一些东西来检查给定日期是否大于今天。例如,如果我输入了 2011 年 4 月 19 日的日期,而今天是 2011 年 4 月 15 日,则应该有一些验证器/弹出错误。我该如何实现?

我的系统日期(今天的日期)通过 php 可以正常工作。当用户输入比今天更高的日期时,我只是不知道如何创建验证/错误消息。

【问题讨论】:

  • 你能提供一些示例代码来解释你目前的情况吗?了解这些日期返回的格式会有所帮助。

标签: php javascript validation datetime


【解决方案1】:

可以使用 PHP(在服务器端)和 JavaScript(在客户端,在浏览器中)来完成。

以下是如何在 JavaScript 上执行此操作的示例:

var currentTime = new Date()
    month = currentTime.getMonth(),
    day = currentTime.getDate(),
    year = currentTime.getFullYear(),
    today = year + "-" + month + "-" + day;

var users_day = '2011-04-19';

if (users_day > today) {
     alert ("Entered day is greater than today");
}
 else {
     alert ("Today is greater than entered day");
 }

【讨论】:

    【解决方案2】:

    例如(在 PHP 中)

    date_default_timezone_set(date_default_timezone_get()); // not necessary here
    
    $today = strtotime('2011-04-15');
    $users_day = strtotime('2011-04-19');
    
    if ($users_day > $today) {
      echo "Error";
      }
    else {
      echo "OK";
      }
    

    以上输出示例

    Error
    

    ...因为April 19, 2011(用户输入)大于April 15th, 2011(今天)。

    【讨论】:

    • date_default_timezone_set(date_default_timezone_get()); 那应该做什么?
    • @Jacob,从代码中重新设置相同的时区并提高 date()、strtotime() 等函数执行时间的速度。看this。这在这里是不必要的,但是当我在 PHP 中使用任何日期/时间函数时(实际上是在我的每个 PHP 脚本的开头),我总是放那一行。
    • 请注意。感谢 Wh1T3h4Ck5 和 jacob :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2011-07-14
    • 2012-06-04
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多