strtotime()总是返回相同的某一天,但日期的其他部分是正确的

时间:2013-04-18 15:28:58

标签: php date strtotime

我有一个简单的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()总是给我正确的日期除了月份之日 总是最终是相同的number作为月份的数量(例如,5月的任何日期变为“2013年5月5日”等等。)

更新:已解决

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

2 个答案:

答案 0 :(得分:4)

j用于该月中的某一天,而不是n这是数字月份:

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

See it in action

答案 1 :(得分:2)

请在此处查看date()的文档:http://php.net/manual/en/function.date.php

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