gpt4 book ai didi

PHP strtotime() 与 date.js parse()

转载 作者:行者123 更新时间:2023-11-30 18:32:50 25 4
gpt4 key购买 nike

我有一个网站,用户可以在将日期发送到服务器之前输入他们自己的日期。所以我显然需要在实际使用之前解析他们给我的东西并将其转化为标准格式。所以我使用了 PHP 的 strtotime()函数,它对接受什么作为输入非常宽容。

但我也在使用 date.js在网站上,它的 parse() 函数也很不错。在将它发送到服务器之前,我应该在用户输入上使用它吗?哪个更好?

为了安全起见,我会在后端保留 strtotime(),但如果 date.js 更好,我会将其添加到客户端。

(澄清一下,我希望主要是美国日期格式。但如果这种情况发生变化,任何能够简化转换的方法都是首选。)

最佳答案

只要您觉得 strtotime() 满足您的需求,就没有理由在客户端更改它。但是,strtotime() 做出了一些您需要掌握的假设:

From the strtotime() documentation:

Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed.

如果您允许您的客户以他们选择的任何格式发送日期,则上述内容可能会造成混淆。我刚刚在 date.js 中测试了日期 5/1/125-1-12,两者都被解析为 2012 年 5 月 1 日。PHP 会解释这两个分别为 2012 年 5 月 1 日和 2005 年 1 月 12 日 (!!)。

echo date("Y-M-n", strtotime("5/1/12"));
// 2012-May-5
echo date("Y-M-n", strtotime("5-1-12"));
// 2005-Jan-1 (whoops!)

但是,预格式化日期具有明显的好处,可以确保输入的日期有效。在后端保留 strtotime() 还可以确保您不需要支持 JavaScript 的客户端来发送请求。您的 PHP 仍然可以作为 Web 服务等调用,而客户端不需要是 Web 浏览器。

关于PHP strtotime() 与 date.js parse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9120333/

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