What's the issue in a code written for comparing the date with today's date?

前端 未结 3 1672
小鲜肉
小鲜肉 2020-12-07 06:53

I\'m comparing a date with current date(i.e. today\'s date). It is expected that the error should come only when the date to be compared is greater than today\'s date. It sh

相关标签:
3条回答
  • 2020-12-07 06:56

    I think you need to compare date in 'Y-m-d' or 'd-m-Y' format. I think it is not possible to compare date in 'm-d-Y' format

    0 讨论(0)
  • 2020-12-07 06:57

    If posted format is in m-d-Y, then you cannot convert it to unix timestamp directly with strtotime() function, because it will return false.

    If you need to use strtotime() then change the input format to m/d/Y by simple str_replace().

    On the other hand, you could use DateTime class, where you can directly compare objects:

    $submission_date = DateTime::createFromFormat('!m-d-Y', $submission_date);
    $today_date = new DateTime('today');
    
    if ($submission_date > $today_date) {
        echo "submission_date is in the future\n";
    }
    

    demo

    If you need to extract some information from DateTime objects, use format() method on them, which accepts same format as date() function:

    echo $today_date->format('m/d/Y'); # 12/11/2014
    echo $today_date->format('m-d-Y'); # 12-11-2014
    echo $today_date->format('Y-m-d'); # 2014-12-11
    echo $today_date->format('Y-Y-Y'); # 2014-2014-2014
    

    demo

    0 讨论(0)
  • 2020-12-07 07:10

    As we have made changes in your code and we test it works from my side so can you try below.

    $submission_date = $_POST['submission_date'];
    $current_date = date('d-m-y H:i:s');
    if (strtotime($submission_date) > strtotime($current_date))
    {
       echo "Future date not accepted";
    }
    

    Hope this helps.

    0 讨论(0)
提交回复
热议问题