drde3456 2014-06-06 22:47
浏览 244
已采纳

使用strtotime和日期格式化日期字符串

I have date string (Example '2014-06-06 12:24:48'). I what display with other format (Example '06.06.2014 (12:24:48)').

$date = '2014-06-06 12:24:48';
echo date('d-m-Y (H:i:s)', strtotime($date));

Does the output date would be always the same as input date? For any valid input date.

date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))); 
// Always true?
  • 写回答

3条回答 默认 最新

  • dslfq06464 2014-06-07 16:32
    关注
    date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))); 
    // Always true?
    

    While that statement will be true most of the time, it will not always be true because the left (date('Y-m-d H:i:s') is evaluated after the right date('Y-m-d H:i:s'), so if the code is run a nanosecond before the second digit is about to change, the two dates will have different second digits.

    You can verify that these two statements are not always equal by running the code below, which will eventually print "False".

    while(true) {
      $x = (date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))));
      if(!$x) {
        exit("False");
      }
    }
    

    However, if you provide the same timestamp to each date call, then the statements will always be equal

    $time = strtotime(date('Y-m-d H:i:s'));
    date('Y-m-d H:i:s',$time) === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s',$time))); 
    //Always true
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?