需要PHP日期高级和棘手的编码



请先试着理解这个问题。

我希望PHP代码在PHP中找到两个日期(天数)之间的差异,并将结果存储为php中的变量中的numeric/int值

我知道会使用date_diff()函数。但是如何??我在Windows 7上使用wampserver 2.2我的PHP版本是5.3.12请帮助

$date = new DateTime('2014-01-31');
$date2 = new DateTime('2014-02-04');
$diff = date_diff($date, $date2, true);
$difference = $diff->format("%a"); // 4

这将在几天内给你带来不同。如果您想要除天数以外的其他内容,可以在此处查看可能的格式:http://php.net/manual/en/dateinterval.format.php

正如您所看到的,函数date_diff()非常易于使用。它将返回一个DateInterval对象,然后您可以对其进行格式化,以获得所需的结果。

我能想到的最好的解决方案是将日期转换为timestamp,然后得到差异。一个例子是:-

$date1 = date('Y-m-d H:i:s');
$date2 = date('Y-m-d H:i:s'); //I know it's same, it will be different in your case.
//conver it to timestamp now
$date1_timestamp = strtotime($date1);
$date2_timestamp = strtotime($date2);
//calculate difference.
$difference = $date2_timestamp - $date2_timestamp;
//the difference variable holds an int value.
//however, if you want to convert it back to readable date, you can do it like this
$difference_readable_date = date('m/d/Y', $difference);

我的函数用于所有赔率的一次或两次,日期或时间戳。。

 function time_Diff($time2_, $time1_ = false) {
        $date1 = new DateTime();
        if ($time1_) {
            $time1 = preg_match('/[-/]/', $time1_) ? strtotime($time1_) : $time1_;
            $date1->setTimestamp($time1);
        }
        $date2 = new DateTime();
        $time2 = preg_match('/[-/]/', $time2_) ? strtotime($time2_) : $time2_;
        $date2->setTimestamp($time2);
        $interval = $date1->diff($date2);
        $diffrent_ = $interval->format('%Y Years %m Months %d Days %H:%I:%S');
        $diffrent = str_replace(['00 Years', ' 0 Months', ' 0 Days', '00:00:00'], '', $diffrent_);
        $returner = str_replace(['01 Years', ' 1 Months', ' 1 Days'], ['01 Year', ' 1 Month', ' 1 Day'], $diffrent);
        return trim($returner);
    }

相关内容

  • 没有找到相关文章