PHP日期问题() - 月中的剩余天数

时间:2016-12-14 17:35:00

标签: php date timestamp

我正在尝试计算任何一天中一个月的剩余天数。我有以下代码:

            "logLevel"=> \LogLevel::DEBUG,
            "javaScriptMode" => \JavaScriptMode::ENABLED_REAL_TIME,
            "enableDebugMode" => true,
            "cookies" => array(
                array(
                    "key" => "sid",
                    "value" => "abc"
                ),
                array(
                    "key" => "soid",
                    "value" => "def"
                )
            )
        );

输出是: 2016-12-14 - 31 - 1 - 30

我也尝试过日期(' d',$ timestamp),但它仍然在当天返回1,即使它应该是14.为什么我今天得到1?感谢。

我的PHP版本是5.4.45。

2 个答案:

答案 0 :(得分:2)

只需将strtotime添加到timestamp变量,因为date函数需要第二个参数作为整数值。但是当你提供格式化日期时,它被认为是字符串。

date_default_timezone_set("UTC");
echo $timestamp = date('Y-m-d');
echo " - ";
echo $daysInMonth = (int)date('t', strtotime($timestamp));
echo " - ";
echo $thisDayInMonth = (int)date('j', strtotime($timestamp));
echo " - ";
echo $daysRemaining = $daysInMonth - $thisDayInMonth;

输出:

2016-12-14 - 31 - 14 - 17

答案 1 :(得分:1)

使用PHP DateTime class使这更加简单: -

$now = new \DateTime();
$daysRemaining = (int)$now->format('t') - (int)$now->format('d');

See it working