1

我将日期存储在类型的couponmysqldatetime。我的日期存储在mysql表格中:-

2013-11-04 00:00:00

editing通过 HTML 表单。我正在获取价值并将价值放入 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-> 依此类推。

4

1 回答 1

0

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

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

date_default_timezone_set('Europe/Stockholm');


在特定呼叫上设置时区:

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


您还可以检查您的默认时区:

date_default_timezone_get();


如您所见,“Europe/Stockholm”是代表时区的字符串。有关时区的完整列表,您可以参考PHP 手册中支持的时区列表。

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

快乐编码:-)

于 2013-11-04T03:53:31.227 回答