【问题标题】:Issue with date funciton in PHP [duplicate]PHP中的日期函数问题[重复]
【发布时间】:2015-10-28 03:17:28
【问题描述】:

我在下面的日期函数中有一个问题,我已将所有代码放入其中。请检查。我在我的 joomla 组件中使用了 jQuery 日历

 echo $data['startpublish'];

    $data['startpublish'] = date('Y-m-d', strtotime($data['startpublish']));
    echo "?>>>>>>>>>>>".$data['startpublish'];

    exit;

我已将我的日期存储为 mm-dd-yy 格式。当我存储 01-02-2015 时,它将以(Y-m-d)格式将数据存储在 DB 中,当我存储 01-28-2015(1 月 28 日)时,它将转换为 1970-01-01。

请告诉我是什么问题。我也添加了两个屏幕截图。

问题 SS:http://prntscr.com/812w0c

正确的SS:http://prntscr.com/812xbj

【问题讨论】:

  • 我认为这是 'strtotime' 函数的问题,而不是日期函数的问题。

标签: php date time store strtotime


【解决方案1】:

这是一个 strtotime 怪癖,与文本日期表示和美国不合逻辑的说法/书写日期的方式有关

Quote from the PHP Manual,现在我为什么要去那里寻找我想知道的信息。

注意:

m/d/y 或 d-m-y 格式的日期可以通过查看来消除歧义 各个组件之间的分隔符:如果分隔符是 斜线 (/),则假定为美式 m/d/y;而如果 分隔符是破折号 (-) 或点 (.),然后是欧洲 d-m-y 格式 假设。

因此,要正确存储美国日期格式 01-28-2015,您必须将其转换为具有 / 分隔符,例如

$data['startpublish'] = str_replace('-','/', $data['startpublish']);

$data['startpublish'] = date('Y-m-d', strtotime($data['startpublish']));
echo "?>>>>>>>>>>>".$data['startpublish'];

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多