将 html 日期值隐蔽到 RFC 2822


Covert html date value to RFC 2822

我有以下代码,

$date = $_POST["s-date"]; // get from  form. value pass correctly. 
 $time =  "".$hour.":".$minute.":".$second.""; // ok
   echo RFC2822($date,$time);   
function RFC2822($date,$time = '00:00') { 
   $array =  list($d, $m, $y) = explode('-', $date); 
    list($h, $i, $s) = explode(':', $time);
    return date('r', mktime($h,$i,0,$m,$d,$y));
}

当我执行此脚本时,时间片段打印正确,但是日期显示为Jul 08 2025,甚至总是将不同的日期传递给函数。如何解决这个问题。

您必须检查此输入的值$_POST["s-date"]它必须遵循以下日期格式:

`DD-MM-YY`

因为,您正在创建以下格式的列表 (DD-MM-YY):

$array =  list($d, $m, $y) = explode('-', $date);

更新 1:

正如您提到的,您正在使用 HTML 日期,HTML 日期格式是 'YYYY-MM-DD',现在只需根据日期格式更改列表变量顺序即可。

据我所知,您的问题不在于您共享的代码,而在于其他地方。如果我复制粘贴您的脚本并在$date上放置固定日期,它会按预期工作。(我已经删除了缺少变量的$time)

$date = "27-02-2014";
echo RFC2822($date);   
function RFC2822($date,$time = '00:00:00') {
   $array =  list($d, $m, $y) = explode('-', $date);
    list($h, $i, $s) = explode(':', $time);
    return date('r', mktime($h,$i,0,$m,$d,$y));
}

输出

Thu, 27 Feb 2014 12:00:00 +0100

由此,我希望您的 $_POST['s-date'] var 以某种方式获得固定的 08-07-2025 或其他一些输入,使其成为 08 Jul 2025。