【问题标题】:Date Calculation in PHP [closed]PHP中的日期计算[关闭]
【发布时间】:2017-05-12 17:43:05
【问题描述】:

我需要在 C# 中创建一个代码来检查选择的日期是明天以后还是今天已经过去。

我的想法是 $checkDateInPass 将获得当前日期减去 1 天。因此,当用户输入一个日期,无论是在那个日期还是之后,$checkPass 都会挂上绿旗,表示它通过了第一次验证。否则会变成错误。

这是日期验证的代码:

$checkDateInPass = date('d/m/Y',strtotime("-1 days"));
if($checkInDate > $checkDateInPass)
{
    $checkPass += 1;
}
else
{
    $message = "Please pick a proper date to check in.";
    echo "<script type='text/javascript'>alert('$message');</script>";
}

根据上面的书面代码,如果我选择了同一个月的入住日期,它可以正常工作,但如果我选择了下个月而不是当月的入住日期,它就不会按预期工作.

这是一个例子,假设 $checkDateInPass 是 27/12/2016:

答:我选择 29/12/2016 第一次约会,04/01/2017 第二次约会。效果很好。

B:我选择 04/01/2017 第一次约会,07/01/2017 第二次约会。结果证明是错误的。

此语句是否需要考虑其他 IF 语句?

【问题讨论】:

标签: php validation date


【解决方案1】:

您似乎在比较包含格式化时间的字符串,而不是实际时间。你可以这样比较时间:

$checkDateInPass = date('d/m/Y',strtotime("-1 days"));
if(strtotime($checkInDate) > strtotime($checkDateInPass))
{
    $checkPass += 1;
}
else
{
    $message = "Please pick a proper date to check in.";
    echo "<script type='text/javascript'>alert('$message');</script>";
}

【讨论】:

  • 这两个条件都可以满足。
  • 哦..所以..我在进行比较时仍然需要使用strtotime,因为它是没有它的字符串?虽然我认为这仍然是一个实际的时间..我的错误..叹息..谢谢你,先生,你是一个救生员。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
相关资源
最近更新 更多