gpt4 book ai didi

PHP 将日期时间发送到 mysql

转载 作者:行者123 更新时间:2023-11-29 07:24:08 24 4
gpt4 key购买 nike

我无法弄清楚这一点,我确信这很简单,但我的方法是错误的。我有一个 mysql items 数据库,其列名为 datePur 并输入 datetime

样本数据;

+---------------------+
| datePur |
+---------------------+
| 2015-11-03 11:05:00 |
+---------------------+
| 2014-12-02 07:14:11 |
+---------------------+
| 2015-08-01 11:09:34 |
+---------------------+

我的网络应用程序中有两个表单:查看编辑

View 表单检索数据库数据并按以下格式在只读表字段中显示日期; (2015年11月3日)

<td><input type='text' name='datePur' value="<?php echo date("d-m-Y", strtotime($datePur)); ?> disabled"></td>

这按预期工作。

我的编辑表单检索相同的数据,但是这次允许用户在必要时编辑日期。日期以以下格式显示给用户(不是我想要的); (2015-11-03 11:05:00)

<td><input type='text' name='datePur' value="<?php echo $datePur; ?>"></td>

我使用以下代码将数据发布到数据库;

编辑.php

if (isset($_POST['btn-update'])) {
$datePur = ($_POST['datePur']);
}

function.php

public function update($datePur) {
try {
$stmt = $this->db->prepare("UPDATE items SET datePur=:datePur");
$stmt->bindParam(":datePur", $datePur);
$stmt->execute();
return true;
} catch (PDOException $e) {
echo $e->getMessage();
return false;
}
}

仅当我以 Y-M-d h:i:s 格式输入日期(与显示的格式相同)时,该表单才会提交。例如,我无法输入 03-11-2015,因为表单不会提交。

我希望保持日期格式与最终用户一致。我希望日期时间始终d-m-Y 格式显示给最终用户。但是我希望它以 Y-M-d h:i:s 格式插入数据库

如有任何建议,我们将不胜感激。

最佳答案

只需在更新时再次转换日期即可。

if (isset($_POST['btn-update'])) {
$datePur = date('Y-m-d', strtotime($_POST['datePur']));
}

但是,我通常无法正确转换日期,因此我编写了一个函数来转换日期。

if (isset($_POST['btn-update'])) {
$datePur = convertDate ($_POST['datePur']);
}

function convertDate ($date) {
$date = str_replace("/", "-", $date);

$date = explode("-", $date);

return $date[2]."-".$date[0]."-".$date[1];
}



function convertTimestamp ($date) {
$date = str_replace("/", "-", $date);

$datetime = explode(" ", $date);
$date = explode("-", $datetime[0]);
$time = explode(':', $datetime[1]);

$return = $date[2]."-".$date[0]."-".$date[1]." ".$time[0].":".$time[1].":00";

if ($datetime[2] == 'PM' && $time[0] > 12) {
$return = date('Y-m-d H:i:s', strtotime('+12 hours', strtotime($return)));
}elseif ($datetime[2] == 'AM' && $time[0] == 12) {
$return = date('Y-m-d H:i:s', strtotime('-12 hours', strtotime($return)));
}

return $return;
}

无论您使用“/”还是“-”作为日期分隔符,该函数都可以工作,但必须使用“m-d-Y”格式的日期作为初始日期。

关于PHP 将日期时间发送到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35089463/

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