时间戳和表单输入日期/时间
Posted
技术标签:
【中文标题】时间戳和表单输入日期/时间【英文标题】:Timestamp and form input date/time 【发布时间】:2014-02-22 16:25:51 【问题描述】:我还没有构建任何代码,因为在开始制作之前我需要问这个问题。
首先我在做什么: 我将在我的网站上制作一个锦标赛系统,我希望锦标赛创建者选择一个日期和时间,该锦标赛将对注册有效,对注册关闭。
我相信我会使用 www.jongsma.org 日期选择器,因为我认为它看起来非常漂亮且易于最终用户使用。 Link:here
问题:
在清理表单日期/时间的输入后,我是否需要指定将其从用户(插入时间的人)本地时间转换为 UTC,然后再将数据存储到数据库中,或者它是否自动转换将数据写入数据库时从那里输入本地时间到 UTC?
我正在使用 MySQLite
【问题讨论】:
【参考方案1】:mysql 接受格式为“Y-m-d H:i:s”的日期时间。 您始终可以使用 strtotime 将不同格式的日期转换为 unix_timestamp 并将其转换为 mysql 日期格式:
$unix_time = strtotime($differentFormattedDate);
date("Y-m-d H:i:s",$unix_time);
【讨论】:
他需要传递日期/时间。所以格式应该是“Y-m-d H:i:s” 好的,太棒了。感谢您的答复。你知道我如何将它转换回观众当地时间,所以如果我要在我的网站上显示$unix_time
,观众会看到他们的当地时间而不是$unix_time
。我猜$differentFormattedDate
是我从初始 _POST 数据中创建的变量,我从表单本身获得的数据,例如$differentFormattedDate = preg_replace('#[^a-z 0-9_-]#i', '', $_POST['time_date']);
是的 $differentFormattedDate 是您从 datepicker 获得的。本地时间是指本地格式吗?还是当地时间?如果你想设置格式,有一个函数可以做到这一点:strftime (php.net/manual/en/function.strftime.php) echo strftime ( 'd/m/Y H:i:s', $unix_time );
不要忘记先使用 setlocale 来设置你的用户语言环境。
好吧,这真是个了不起的人。谢谢一堆。我指的是当地时间而不是格式,因为英国的晚上 8 点不是美国的晚上 8 点。再次感谢您。
你应该在英国时间定义比赛时间,这样用户就可以看到他们的当地时间。如果您有来自不同时区的用户,您总是可以让他们选择他们的时区并通过加减小时来操纵英国时间。顺便说一句,如果这是您正在寻找的答案,您可以接受它;)以上是关于时间戳和表单输入日期/时间的主要内容,如果未能解决你的问题,请参考以下文章