我在for循环(数据库中的数据)的HTML代码中有datepicker元素(多个datepicker)
它显示良好,让用户为不同的产品选择不同的日期。在提交时,通过发布将这些日期分配到php变量中。
但是元素仍然是字符串而不是日期。如何在php中更改字符串的日期
<input type="text"
name="expirydate[]"
id="expirydate<? echo $SNO;?>"
autocomplete="off"
class="expirydate"
value="<? $DateToday=date('Y-m-d');
$ShowDate1 = explode("-", $DateToday);
$ShowDate2 = "$ShowDate1[2]/$ShowDate1[1]/$ShowDate1[0]";
echo $ShowDate2; ?>"
/>
</td>
$('.expirydate').datepicker({ minDate: 0 });
});
for ($x=0; $x<=$TotalCount-1; $x++)
{
$expirydate1 = $expirydate[$x];
$n1 = explode("/", $expirydate1);
echo $n1[0] . "--" . $n1[1] . "--" . $n1[2] . "<br>";
$n2 = "$n1[2]-$n1[1]-$n1[0]";
$n22 = date_create($n2);
$n3 = date_format($n22,"Y/m/d H:i:s");
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在您的PHP代码中,您已经尝试将字符串转换为日期对象并重新格式化它。但是,根据您提供的信息,似乎存在一些混淆和潜在的错误。首先,让我们澄清一下如何正确地从字符串格式转换到日期对象,然后再转换回您需要的格式。
假设您通过表单提交获得了日期字符串(例如 "dd-mm-yyyy" 格式),并且您希望将其转换为日期对象并在PHP中以 "Y/m/d H:i:s" 格式存储或使用。这里是一个简化的步骤说明:
确保提交的日期格式是确定的:首先确认前端提交的日期格式是一致且预期的,比如 "dd-mm-yyyy"。
使用DateTime::createFromFormat()
方法创建日期对象:这个方法允许您指定输入日期的格式,然后创建一个 DateTime
对象。
格式化日期对象:一旦有了 DateTime
对象,您可以使用 format()
方法将其转换为任何您想要的格式。
基于您的代码示例,这里是一个修正后的例子:
// 假设 $dateStr 是从表单获取的日期字符串,例如 "25-04-2023"
$dateStr = $_POST['your_date_input_name']; // 请替换为实际的表单字段名
// 使用正确的格式解析字符串为 DateTime 对象
$dateTime = DateTime::createFromFormat('d-m-Y', $dateStr);
// 检查日期是否成功创建
if ($dateTime === false) {
echo "无法解析日期: " . $dateStr;
} else {
// 将日期格式化为您需要的格式
$formattedDate = $dateTime->format('Y/m/d H:i:s');
echo "转换后的日期: " . $formattedDate;
// 现在您可以将 $formattedDate 保存到数据库或者进行其他操作
}
这段代码首先尝试按照 "d-m-Y" 格式解析日期字符串,如果成功,则将其格式化为 "Y/m/d H:i:s"。请注意,您需要确保 $dateStr
变量包含实际的表单提交的日期值,并且处理可能的错误情况,比如用户输入的日期格式不正确时的错误处理。