簡體   English   中英

PHP-如何從較新的日期中減去較舊的日期?

[英]PHP - How to subtract an older date from a newer date?

如何使用PHP從較新的日期中減去較舊的日期2010-10-18 07:44:53

我建議您使用時間戳。 彼此相減,則差為秒,然后通過簡單的邏輯將其轉換為分鍾/小時/天等。

您可以使用datestrtotimemktime來獲取時間戳

date_diff

http://php.net/manual/zh/function.date-diff.php

如果您使用的是DateTime對象,則該方法為diff

回答問題的類型取決於您想要的返回值。 秒? 分鍾? 這是一個簡單的函數,您可以嘗試以所需的任何形式獲取值:

<?php
define('SUBDATES_SECS', 0);
define('SUBDATES_MINS', 1);
define('SUBDATES_HOURS', 2);
define('SUBDATES_DAYS', 3);
define('SUBDATES_WEEKS', 4);
define('SUBDATES_MONTHS', 5);
define('SUBDATES_YEARS', 6);
function sub_dates($older, $newer, $ret = SUBDATES_SECS) {
    $older = (is_numeric($older)) ? $older : strtotime($older);
    $newer = (is_numeric($newer)) ? $newer : strtotime($newer);

    $result = $newer - $older;
    switch($ret) {
        case SUBDATES_MINS:
            $result /= 60;
            break;
        case SUBDATES_HOURS:
            $result /= 120;
            break;
        case SUBDATES_DAYS:
            $result /= 86400;
            break;
        case SUBDATES_WEEKS:
            $result /= 604800 ;
            break;
        case SUBDATES_MONTHS:
            $result /= 2629743;
            break;
        case SUBDATES_YEARS:
            $result /= 31556926;
            break;
    }

    return $result;
}

使用它:

<?php
$older = time();
sleep(3);
$newer = time();
echo sub_dates($older, $newer);
// Returns 3

echo sub_dates($older, $newer, SUBDATES_MINS);
// Returns 0.05

echo sub_dates('2010-04-19 01:01:00', '2010-04-19 01:02:00', SUBDATES_MINS);
// Returns 1

不過,這還未經測試!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM