php日期格式转换错误
我使用以下代码将此日期->php日期格式转换错误,php,mysql,date,Php,Mysql,Date,我使用以下代码将此日期->18/07/2013转换为mysql支持的格式 $date = date('Y-m-d', strtotime('18/07/2013')); 理想情况下,这应该返回2013-07-18… 但是,问题是它会自动将字符串选择为: 年为年 月为日 日为月 现在,因为它将18标识为月份,所以它超出范围,并显示默认日期1970-01-01 我在这件事上浪费了将近两天 如果有人能帮忙,请提前感谢 使用object,让php了解向其传递日期的格式 $date = DateTime
18/07/2013
转换为mysql
支持的格式
$date = date('Y-m-d', strtotime('18/07/2013'));
理想情况下,这应该返回2013-07-18
…但是,问题是它会自动将字符串选择为:
年为年
月为日
日为月
现在,因为它将18
标识为月份
,所以它超出范围,并显示默认日期1970-01-01
我在这件事上浪费了将近两天
如果有人能帮忙,请提前感谢 使用object,让php了解向其传递日期的格式
$date = DateTime::createFromFormat('d/m/Y', '18/07/2013');
echo $date ->format('Y-m-d');
使用对象,让php了解向其传递日期的格式
$date = DateTime::createFromFormat('d/m/Y', '18/07/2013');
echo $date ->format('Y-m-d');
strotime参数的格式应为
18-07-2013
strotime参数的格式应为18-07-2013
试试这个:)
试试这个:)
您需要输入您的日期,您的日期被解析为美国日期,美国日期格式为mm/dd/yyyy
date_default_timezone_set('Europe/Berlin');
也使用
您需要输入您的日期,您的日期被解析为美国日期,美国日期格式为mm/dd/yyyy
date_default_timezone_set('Europe/Berlin');
也使用
正斜杠(/)表示美国的M/D/Y格式,短划线(-)表示欧洲的D-M-Y格式,句点(.)表示ISO Y.M.D格式
注意:
echo date("jS F, Y", strtotime("11.12.10"));
// outputs 10th December, 2011
echo date("jS F, Y", strtotime("11/12/10"));
// outputs 12th November, 2010
echo date("jS F, Y", strtotime("11-12-10"));
// outputs 11th December, 2010
正斜杠(/)表示美国的M/D/Y格式,短划线(-)表示欧洲的D-M-Y格式,句点(.)表示ISO Y.M.D格式
注意:
echo date("jS F, Y", strtotime("11.12.10"));
// outputs 10th December, 2011
echo date("jS F, Y", strtotime("11/12/10"));
// outputs 12th November, 2010
echo date("jS F, Y", strtotime("11-12-10"));
// outputs 11th December, 2010
问题在于PHP中的日期字符串
- 以斜线分隔的日期值假定为美式顺序:m/d/y
- 以破折号分隔的日期值假定为欧洲顺序:d-m-y
问题在于PHP中的日期字符串
- 以斜线分隔的日期值假定为美式顺序:m/d/y
- 以破折号分隔的日期值假定为欧洲顺序:d-m-y
您可以将其破解为
strotime(str_replace('/','-','18/07/2013'))
请在发布新问题之前使用搜索,这是php手册->YY“/”MM“/”DD中的副本这是您应该使用的日期函数@Prix下次我会记住这一点:)你可以将其破解为strotime(str_replace('/','-','18/07/2013'))
请在发布新问题之前使用搜索,这是php手册->YY”/“MM”/“DD中的一个副本这是你应该使用的日期函数@Prix下次我会记住:)这不是针对PHP5>=5.3.0的吗?我的服务器上安装了旧版本的php。@比我更安全-在这种情况下,您需要进行调整,如andy&prix在评论中所示。谢谢Rikesh,这很有效。Ayyappan的答案也很好:)这不是针对PHP5>=5.3.0的吗?我的服务器上安装了旧版本的php。@比我更安全-在这种情况下,您需要进行调整,如andy&prix在评论中所示。谢谢Rikesh,这很有效。阿亚潘的回答也很好:)这里出了什么问题。。。理想情况下,如果您使用2013年7月18日,则第一个数字被视为月份,但如果您使用2013年7月18日,则第一个数字是一天。从技术上讲,用PHP代码编写2013年7月18日是错误的,因为18日不可能是一个月。因此,请根据代码更改命名约定。要使用它,请更改/使用-然后将其转换为日期。。。理想情况下,如果您使用2013年7月18日,则第一个数字被视为月份,但如果您使用2013年7月18日,则第一个数字是一天。从技术上讲,用PHP代码编写2013年7月18日是错误的,因为18日不可能是一个月。因此,请根据代码更改命名约定。要使用它,请更改/使用-然后将其转换为日期。非常感谢。非常感谢。