我想用PHP设置一个必须在月底到期的cookie。
如何获得月末之前的秒数?
谢谢。
答案 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