dongtaochan0777 2015-07-24 01:22
浏览 64
已采纳

DateTime :: createFromFormat即使不应该返回false

I am trying to make sure a date is a valid date, it is like so 07/24/2015 - 07/24/2015

This is my code to make sure it's value

//split the start and end date in to 2 and compare both to a real date to make sure they're valid
        $newdate = explode("-", $start);

        //echo 1;
        //make sure date 2 is set
        if(!isset($newdate[1])): Session::set('error', 13); return false; endif;

        //check if newdate 0 and 1 are real dates
        $date1 = DateTime::createFromFormat('m-d-Y', str_replace("/","-",$newdate[0]));
        $date2 = DateTime::createFromFormat('m-d-Y', str_replace("/","-",$newdate[1]));

        echo date("m-d-Y").'<br/>';
        echo str_replace("/","-",$newdate[0]);

        var_dump($date1);
        var_dump($date2);
        //not valid dates
        if($date1 == false || $date2 == false): Session::set('error',13); return false; endif;

I have tried it with, and without str_replace, I have compared the date("m-d-Y"); to my $newdate with str_replace and they match perfect, but I am still getting a (bool)false with my dates even though they're valid

  • 写回答

1条回答 默认 最新

  • drgzmmy6379 2015-07-24 01:26
    关注

    I would start by fixing the explode to be on ' - ', since '-' is leaving extra spaces at the beginning and end of your date strings. That will fix it. Shown here: https://eval.in/404554

    Next, you don't need to bother with str_replace on them.

    $dates = '07/24/2015 - 07/24/2015';
    $newdate = explode(" - ", $dates);
    
    $date1 = DateTime::createFromFormat('m/d/Y', $newdate[0]);
    $date2 = DateTime::createFromFormat('m/d/Y', $newdate[1]);
    

    Valid dates: https://eval.in/404555

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多