我正在尝试计算任何一天中一个月的剩余天数。我有以下代码:
"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。
答案 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');