【问题标题】:Converting Date format in PHP在 PHP 中转换日期格式
【发布时间】:2013-04-27 19:41:42
【问题描述】:

我得到了像Mon Apr 22 2013 12:16:00 GMT+0530(印度标准时间)这样的日期格式,它在我的 php 函数中形成了一个 javascript。

我想以“2013-04-22 12:16:00”格式将其存储到我的数据库表中。

谁能帮我转换一下这个日期类型。

我试过了:

date("Y-m-d H:i:s",$startDate);

但它给出了错误

date() 期望参数 2 是给定的长字符串

【问题讨论】:

  • 我使用的是mysql数据库,该字段的数据类型是日期时间

标签: php mysql sql


【解决方案1】:

使用 strtotime() 和 date():

$originalDate = "Mon Apr 22 2013 12:16:00 GMT+0530 (India Standard Time)" ;
$newDate = date("Y-m-d H:i:s", strtotime($originalDate));

(请参阅 PHP 网站上的 strtotimedate 文档)。

或使用DateTime:

<?php
$source = "Mon Apr 22 2013 12:16:00 GMT+0530 (India Standard Time)";
$date = new DateTime($source);
echo $date->format("Y-m-d H:i:s"); // 22 2013 12:16:00
echo $date->format("Y-m-d H:i:s"); // 22 2013 12:16:00
?>

DEMO

【讨论】:

  • 对不起,它给了我结果 "1970-01-01 01:00:00" 但我在 $startDate 中传递的值是 "Mon Apr 22 2013 13:00:00 GMT+0530 (India Standard时间)”
  • 我展示了演示,但很抱歉说它最终无法正常工作。现在它给出了类似 Fatal error 的错误:未捕获的异常 'Exception' 并带有消息 'DateTime:: __construct() [<a href='datetime.--construct'>datetime.--construct</a>]: 解析时间字符串失败 (Mon Apr 22 2013 12:00:00 GMT+0530 (India Standard Time)) 在位置 41 (S):双时区规范'
  • 你是在 localhost 还是在网络上尝试?
  • @amitghosh - 只需使用字符串操作来删除邮票的(India Standard Time) 部分......您已经指定了时区(GMT+0530)。尝试$startDate = preg_replace("/\((.*?)\)/", "", $startDate),然后运行$date = new DateTime($source); echo $date-&gt;format("Y-m-d H:i:s"); // 22 2013 12:16:00
【解决方案2】:

尝试使用 strtotime 将时间戳转换为 unix 格式,以便您可以在 date() 函数中使用它:

date("Y-m-d H:i:s",strtotime($startDate));

您也可以尝试使用(通常包含)DateTime 类。特别是,看看DateTime::createFromFormat。它可以帮助您解决日期字符串中的歧义(strtotime() 有时会失败或错误解析日期字符串)。 DateTime::createFromFormat 允许您专门指定日期字符串的格式,以免产生歧义。

【讨论】:

  • 对不起,它给了我结果 "1970-01-01 01:00:00" 但我在 $startDate 中传递的值是 "Mon Apr 22 2013 13:00:00 GMT+0530 (India Standard时间)”
【解决方案3】:

首先你需要将它保存为时间戳,

$startDate = strtotime($javascript_value);    
$result =  date("Y-m-d H:i:s",$startDate);

【讨论】:

  • 它也给了我“1970-01-01 01:00:00”我认为提供的所有答案都是一样的.. :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多