使用 PHP 创建日期以适应 HTML 输入类型的日期


Date Creation using PHP to suit HTML-input type date

我将日期存储在datetime类型的coupon mysql表中。我的日期存储在表中mysql为:-

2013-11-04 00:00:00

虽然通过HTML表单editing。我正在获取值并以 HTML 形式放置值,如下所示:-

<input id="unlisted" type="date" name="coupon" class="input-large" 
value="<?php echo gmdate('Y-m-d' ,strtotime($edit['coupon'])); ?>" />

哪里$edit['coupon'] = 2013-11-04 00:00:00

  • 问题是,它以形式显示日期 1 天,保存后不对日期进行任何更改。 日期被保存 1 天前。 2013-11-03 00:00:00 .

每次 1 单击编辑并保存而不对日期进行任何更改。它回到 1 天前:- 2013-11-02 00:00:00 -> 2013-11-01 00:00:00 ->依此类推。

问题可能是由于时区不同引起的。PHP 安装的默认时区与您的实际位置不同。要解决此问题,您只需设置默认时区或在特定函数调用时设置它。

您可以通过编辑 php.ini 来设置 PHP 安装的默认时区。您还可以以编程方式更改默认时区:

date_default_timezone_set('Europe/Stockholm');


要设置特定呼叫的时区:

strtotime($date_str . ' ' . $timezone);


您还可以检查默认时区:

date_default_timezone_get();


如您所见,"欧洲/斯德哥尔摩"是代表时区的字符串。有关时区的完整列表,您可以参考 PHP 手册中支持的时区列表。

(如果您使用 PHP> 5.2,则可以使用 DateTime 而不是 strtotime。

快乐编码:-)