在PHP中获得直到月底的秒数

时间:2010-05-11 14:08:11

标签: php

我想用PHP设置一个必须在月底到期的cookie。

如何获得月末之前的秒数?

谢谢。

4 个答案:

答案 0 :(得分:6)

您可以使用time()来获取自epoche以来经过的秒数。然后使用strtotime(“date”)来获取您的日期秒数。减去两者,你就得到了秒数的差异。

这将为您提供本月的最后一秒:

$end = strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')) - 1;

现在可以给你:

$now = time();

这会给你距离:

$numSecondsUntilEnd = $end - $now;

答案 1 :(得分:4)

如果你正在使用setcookie()功能,那么你真的不需要秒数,你需要时间戳,当cookie应该是过期:

// Works in PHP 5.3+
setcookie("cookie_name", "value", strtotime("first day of next month 0:00"));

// Example without using strtotime(), works in all PHP versions
setcookie("cookie_name", "value", mktime(0, 0, 0, date('n') + 1, 1, date('Y')));

答案 2 :(得分:0)

为月末创建时间戳,并从中减去当前时间的时间戳。

// Create a timestamp for the last day of current month
// by creating a date for the 0th day of next month
$eom = mktime(0, 0, 0, date('m', time()) + 1, 0);

// Subtract current time for difference
$diff = $eom - time();

答案 3 :(得分:0)

在PHP 5.3中,他们添加了一个DateTime类,这使得像这样的处理操作更有意义,也更容易(在我看来)。

$datetime1 = new DateTime('now'); // current date
$datetime2 = new DateTime(date("Ymt")); // last day in the month
$interval = $datetime1->diff($datetime2); // difference
echo $interval->format('%d') * 86400; // number of seconds