根据 URL-变量 PHP 使 Cookie 过期

Make Cookie expire according to URL-variable with PHP

我正在开发一个新的 product/website,主页(而不是子页面)应该在网站启动之前对访问者关闭。启动日期应该像这样从 URL 中读出:

website.com/some-subpage?launch=0421

在此示例中,访问者应该可以从 4 月 (04) 日 (21) 日开始访问主页。

为此,如果有人访问 "some-subpage"(或任何其他子页面,无关紧要),我想这样做,cookie 应该设置如下:

这是我目前的情况:

<?php
if ($_GET['launch'] != "null") {
date_default_timezone_set('Europe/Berlin');
$launchdate = $_GET['launch'];

$launchdatenew->format('*********'); // Here I probably need to convert the "0421" to a readable time, but I dont know how
// or probably using this version?
$launchdatenew = date_format(date_create_from_format('m d', $launchdate), '*********'); // Here I probably need to convert the "0421" to a readable time, but I dont know how

setcookie("Launch", $launchdate, $launchdatenew, "/"); // The Cookie-Name should be "Launch", the value "0421", and it should expire when the launch starts

} ?>

你能帮我完成这个吗?我不知道如何将“0421”转换为可以设置为 cookie 过期日期的新格式。不幸的是,我的 PHP-技能几乎为零。

非常感谢! 再见, 伊姆雷

然后我将向您展示如何根据 $launch 中的日期在该 cookie 上设置 expire

假设它将始终采用 'mmdd' 格式,然后进行一些简单的字符串操作...

$launchDateStr = '0421';

$launchTime = mktime(0, 0, 0, substr($launchDateStr, 0, 2), substr($launchDateStr, 2));

$ttl = $launchTime - time(); //just an example... find seconds between now and launch

setcookie("launch", $launchDateStr, $launchTime, "/");

警告...这忽略了年份。您不应该信任用户数据。这一切都可以被欺骗。