好的,我正在编写一个论坛提交的php代码,让我们调用文件名index.html,它获取论坛日期,在下面的代码中首先提交。
<center>
<form name="birthDay" method="post" action="months.php">
<input type="date" id="birthDay" name="birthDay"><br>
<input type="submit" name="Submit" value="send"><br>
</form>
</center>php文件months.php将接受变量生日,并将其提交给月份php文件。正因为如此。
<?php
if(isset($_POST['birthDay'])) {
$link = $_POST['birthDay']; //Month for Jan
$janBegin = date("01-01");
$janEnd = date("01-31");
if ($birthDate >= $janBegin || $birthDate <= $janEnd) {
echo "Your birthday month is janurary";
}
?>等等,基于所有12个月。在提交论坛时。
我的问题是如何创建变量“生日”的列表,以便与所有月份的开始日期和结束日期进行比较?
我已经看过是否,如果,swith声明,但没有什么不创造期望的结果?我可能做错了什么。但无法在我的代码中找出错误。
这就是我来这里的原因。
在这方面的任何帮助都是非常感谢的。谢谢
根据请求通过ADyson
这段代码只是我试图做的一个例子。我在下面的评论中指出,开始日期和结束日期将以随机变量设置。总变量设置为12,这就是为什么我选择使用月份的开始日期和结束日期。ADyson,我相信这个想法比我所希望的要简单一些。
基本上代码看起来是这样的。
<?php
$startdate1 = date("01/20")
$enddate1=date("02/27")
if ($bday >= $startdate1 && $bday <= $enddate1) {
echo "response #1";我还对此进行了更多的研究,并发现了一段代码片段,其中使用了我发现起作用的if和snippet语句。但还是遇到了一个问题。
当输入日期并遍历代码时,它匹配错误的响应。因此,假设输入了08/27 (m-d)的日期,它将停止并匹配
$option11Begin = date("11/25");
$option11End = date("12/23"); 比较
} elseif ($bday >= $option11Begin && $bday <= $option11End) {知道为什么会发生这种事吗。谢谢。
发布于 2021-12-22 17:10:43
您不需要比较开始日期和结束日期,也不需要有大量的开关语句。只需将日期输入PHP的内置DateTime类,该类专门处理日期,然后只输出结果对象中的月份名称。
if(isset($_POST['birthDay'])) {
$bday = new DateTime($_POST['birthDay']);
echo "Your birthday month is ".$bday->format("F");
}仿真:http://sandbox.onlinephpfunctions.com/code/f4b8730927927adf976dfb103c58ba132ca9217f
文档链接:https://www.php.net/manual/en/class.datetime.php
此解决方案将适用于每月的任何一天。它解析日期字符串,然后从结果的DateTime对象中始终获得月份值-或任何其他您想要的信息,或者与其他DateTime对象进行其他比较,或者进行所需的任何其他比较。这比任何类型的字符串比较都容易,也更可靠。
https://stackoverflow.com/questions/70451555
复制相似问题