就前端可用性和PHP DATE_TIME验证而言,这是一个双重问题.
我正在为一个想要添加项目完成日期的客户的网站工作(因此可以按顺序列出项目).他将是唯一一个使用管理界面的人,所以我希望它尽可能简单.
我将日期存储为SQLite数据库中的DATE_TIME.
我想要求客户至少输入年份和月份,并选择将日,小时,分钟,秒添加到DATE_TIME.如果未设置,则默认为最小数字.
我认为最好的方法也是最简单的方法是使输入(左)和结果(右)的单个输入形式.让他使用xxxx / xx / xx / xx / xx / xx作为格式.
2009/08 = 2009-08-01 00:00:01
2009/08/01 = 2009-08-01 00:00:01
2009/08/01/05 = 2009-08-01 05:00:01
(默认添加一秒,否则将是前一天)
我首先尝试将输入爆炸成数组并使用正则表达式验证每个日期部分.它真的很乱,并且我无法弄清楚如何验证适当的范围,比如/ [1980-2009] /或/ [01-12] /(这不像我预期的那样工作).此外,/ [(0-9){2}] /显然不适用于本月.
另一个选项是使每个日期部分成为单独的选择字段.使每个字段在一个月后可选.但是在html输出中变得混乱,同样假设每个月没有31天,我需要一些javascript来改变日期字段,具体取决于选择的月份.这太多了.使用单个字段似乎也更容易,更快捷.
你们建议什么是输入和验证自定义日期时间的最佳方式?
解决方法:
我建议在日期调用strtotime(),这样他就可以输入各种日期格式,包括月/年,日/月/年,日/月/年小时:分钟和年 – 月 – 日小时:分钟
如果strtotime无法确定日期是什么,则返回false(在旧版本的PHP中为-1,请查看您的手册).所以你的一般代码是:
>通过stripslashes(如果需要)和strtotime运行输入
>检查值是否为=== false.如果是,则显示错误
>否则,格式化数据库期望使用的时间为date()
原文地址:https://codeday.me/bug/20190610/1214624.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。