【发布时间】:2013-12-31 03:36:20
【问题描述】:
我正在从注册表单中收集用户的生日,并希望在将其存储到数据库之前使用 strtotime 将其转换为时间戳,但这并不顺利。
我让他们在 3 个选择框中选择他们的日期,一个是日,另一个是月,最后是年,然后我将这些输入到 strtotime。问题是,我正在为之前列出的变量输入“1”、“January”和“2013”,并将它们输入到 strtotime 中,如下所示:
$user->birthday = strtotime($input['bday'].'-'.$input['bmonth'].'-'.$input['byear']);
这在回显为“2013 年 1 月 1 日”时读取,但它吐出的时间戳呈现为“2012 年 12 月 31 日”,使用:
date_default_timezone_set("America/Los_Angeles");
echo date("M d, Y", 1356998400);
我一直在大量测试不同的方法,但无法让它发挥作用。如有任何帮助,我将不胜感激。
【问题讨论】:
-
在打电话给
strtotime之前你打电话给date_default_timezone_set了吗? -
我相信我的框架设置了这一点。它设置为 UTC。
-
所以你正在处理 UTC 中的输入日期,然后在 LA 时间回显它。当格林威治 1 月 1 日时,洛杉矶仍然是 12 月 31 日。
-
哦,射击...*掌心*...天哪..谢谢。 xD