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日不可能是一个月。因此,请根据代码更改命名约定。要使用它,请更改/使用-然后将其转换为日期。非常感谢。非常感谢。