1

我有一个简单的 Web 应用程序的一部分,它从 JavaScript 日历选择器获取输入,将其发送到服务器,然后服务器将其转换为人类可读的时间并将其回显。

我的 HTML 表单最终具有格式为 MM/DD/YYYY 的值。

当它被 POST 到服务器时,此 PHP 将其转换为不同的格式(请注意,我使用的是 CodeIgniter,因此$this->input->post()与 相同$_POST[]):

php $date = date('l, F n, Y', strtotime($this->input->post('date')));

示例输入和输出

HTML 文本输入将获得值“04/21/2013”​​。

PHP 的 strtotime() 将回显“2013 年 4 月 4 日,星期日”。

无论我在那里输入什么日期, strtotime() 总是给我正确的日期,除了月份中的哪一天总是与月份的数字相同(例如,五月的任何日期都变成“ 2013 年 5 月 5 日”等)。

更新:已解决

我一发布这个我就意识到是 'l, F n, Y' 中的 'n' 导致了这个问题。把它变成'j'固定的东西。很抱歉浪费大家的时间。

4

2 回答 2

4

Use j for day of the month, not n which is the numeric month:

php $date = date('l, F j, Y', strtotime($this->input->post('date')));

See it in action

于 2013-04-18T15:30:02.590 回答
2

请参阅此处的 date() 文档:http: //php.net/manual/en/function.date.php

将日期函数的第一个参数中的 n 更改为 j,您将获得月份中的日期数。

于 2013-04-18T15:34:44.467 回答