gpt4 book ai didi

php - 在我的 PHP 代码中,我应该在哪里使用函数来转换日期?

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

(由于约翰·康德(John Conde)不理解我的问题而错误地将其标记为已回答,因此我不得不编辑这篇文章。)

在我的 PHP 应用程序中,用户应该能够以 strtotime() 函数理解的任何格式输入日期。这是输入:

    <label>Release Date:</label>
<input type="text" name="release_date"/>&nbsp;<span>Use any valid
date format</span>
<br />

然后索引页从表单中提取它并将其存储在数据库中,如下所示......

$release_date = $_POST['release_date'];

并将其显示在列表页面上,如下所示:

<td><?php $date = date('n/j/Y', strtotime($product['releaseDate'])); 
echo $date; ?></td>

我知道如何将日期从一种格式转换为另一种格式。显示面没问题。但是,我在哪里以及如何获取用户输入(以 strtotime() 函数可以解释的任何日期格式输入)并将其转换为进入数据库的可读格式?现在,如果我输入任何非“xxxx-xx-xx”格式的日期,它会被读取为 0,并显示为 UNIX 0, 1/1/1970。

谢谢。

最佳答案

某些日期可以找到,并且您可以做到,但某些日期(例如从每月 1 号到第 12 号的任何日期)将是不明确的,因为您无法区分月份和日期。如果您允许两位数年份,那么 2001 年到 2012 年也会出现问题 - 并且 2001 年到 2031 年年份与月份会发生冲突。

在某些情况下,您可以要求用户进行澄清,但这会更加复杂。

不要忘记添加:

    $todate = stripslashes(trim($_POST['form-todate']));

消除任何潜在的 SQL 注入(inject)。

这里还有一个日期验证:

    function validateDate($date, $format = 'Y-m-d H:i:s') {
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}

函数是从此 answer 复制的或php.net

您可以将输入字符串以各种格式传递给此函数,直到出现一个或多个匹配项(您可能不想要其中的时间,因此将其取出)。

如果有多种格式匹配 - 询问用户以确认是哪一种。

顺便说一下,如果你要对此进行网络化,我在(我认为)https://eonasdan.github.io/bootstrap-datetimepicker/ 中使用了一种很棒的 bootstrap js 技术。

它会在您的输入字段上创建一个迷你日历,因此用户无需输入任何内容 - 只需指向并单击即可。

关于php - 在我的 PHP 代码中,我应该在哪里使用函数来转换日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35369125/

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