我在我的应用程序上使用php和jquery创建了一个计划程序。我有一个部分,用户输入开始日期和开始时间,另一个部分输入结束日期和结束时间。这些字段都是单独的,如下所示:
<input type="text" name="dateFrom" id="dateFrom"> <!-- datepicker plugin -->
<input type="text" name="time_from" id="timeFrom"> <!-- timepicker plugin -->
<input type="text" name="dateTo" id="dateTo"> <!-- datepicker plugin -->
<input type="text" name="time_to" id="timeTo"> <!-- timepicker plugin -->
我想知道的是,一旦用户输入了上述信息,并将数据提交到数据库,而不是在表格中创建单独的列,无论如何插入dateFrom
和{{1 }}字段到一个名为timeFrom
的数据库列中作为UNIX时间戳,对于start_time
&amp; dateTo
字段。
任何人都可以就如何做到这一点给我任何想法吗?
答案 0 :(得分:0)
您可以使用strtotime
组合日期和时间,以在插入之前获取UNIX时间戳。
$dateFrom = "2013-05-13";
$timeFrom = "13:52";
$fromStamp = strtotime("$dateFrom $timeFrom");
注意:强>
通过查看各个组件之间的分隔符来消除
m/d/y
或d-m-y
格式的日期:如果分隔符是斜杠(/
),那么美国{{1 }} 假设;如果分隔符是短划线(m/d/y
)或点(-
),则假定为欧洲.
格式。为避免潜在的歧义,最好在可能的情况下使用ISO 8601(
d-m-y
)日期或DateTime::createFromFormat()
。
答案 1 :(得分:0)
像
这样的东西INSERT INTO yourtable (start_time, end_time)
VALUES (UNIX_TIMESTAMP('$dateFrom $timeFrom'), UNIX_TIMESTAMP('$dateTo $timeTo'))
假设您的$ dateFrom为yyyy-mm-dd
,而$ timeFrom为hh:mm:ss
,则会这样做。当然,如果您直接将表单字段填充到查询中,这将受到SQL注入攻击,但这只是为了向您展示应该这样做的一种方式。