gpt4 book ai didi

php - 将 PHP 日期范围转换为 MYSQL 单个日期

转载 作者:行者123 更新时间:2023-11-29 01:41:29 25 4
gpt4 key购买 nike

我有一个可用性日历,我目前正在其中一个一个地添加日期,并使用 mysql 查询来确定是否存在具有特定日期的行并将当天的类别更改为“已预订”(红色) .

我想在我的表单中输入一个范围,并通过 php(或 mysql)将其处理成多个单独的日期。我的日期格式是 M/D/YYYY 或 MM/DD/YYYY,两者都被接受。不幸的是,当我构建我的日历时,我没有使用 sql 中的日期格式作为条目,而是使用了 varchar。

有没有办法输入我的表单,例如 1/1/2014-1/3/2014 并让 php 将其转换为 1/1/2014、1/2/2014、1/3/2014 和然后有一个 mysql INSERT 查询来一次插入多个值?

if (empty($_POST) === false && empty($errors) === true) {
$adcp_data = array(
'date' => $_POST['date'],
'customer' => $_POST['customer'],
'notes' => $_POST['notes'],
);
insert_adcp($adcp_data);
header('Location: adcp.php?success');
exit();

insert_adcp 函数如下所示:

function insert_adcp ($adcp_data) {
array_walk($adcp_data, 'array_sanitize');
$fields = '`' . implode('`, `', array_keys($adcp_data)) . '`';
$data = '\'' . implode('\', \'', $adcp_data) . '\'';

mysql_query("INSERT INTO `adcp` ($fields) VALUES ($data)");

我的解决方法和最后的手段是添加多个文本输入并手动添加多个日期,这样我只需提交一次。但是范围要快得多!

最后一点,如果我能让这些多个条目将每个日期的“客户”和“注释”值保持在范围内,那将是非常棒的。我准备失去这些领域,但要完成这项工作。谢谢

最佳答案

类似于:

$day = new DateTime($_POST['range_start']);
$end = new DateTime($_POST['range_end']);

$all_dates = array();

while ($day <= $end){
$all_dates[] = $day;
$day->add(new DateInterval('P1D'));
}

这将为您提供一组 DateTime 对象,每个对象代表您范围内的一天。通过调用 DateTime::format() 并将“m/d/Y”作为格式字符串传递,您可以将每个对象恢复为字符串。

至于将多个条目导入 MySQL,INSERT 语法允许 INSERT INTO table (column) VALUES (row1), (row2), ... (rowN)

(这显然没有经过测试或您将使用的最终代码——只是从内存中写入此 Web 表单……您必须通过输入卫生和范围检查等正确地写出它。)

关于php - 将 PHP 日期范围转换为 MYSQL 单个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20270298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com