无法在php中更改日期格式[重复]

Posted

技术标签:

【中文标题】无法在php中更改日期格式[重复]【英文标题】:Unable to change date format in php [duplicate] 【发布时间】:2015-03-30 16:07:05 【问题描述】:

我尝试在 php 中将日期“31/01/2015 11:33:22 AM”更改为“2015-01-31 11:33:22”

我试过了

echo strtotime('31/01/2015 11:33:22 AM');

但是它会抛出错误..任何想法。请分享

错误信息

警告:strtotime() [function.strtotime]:依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 2 行为 'EST/-5.0/no DST' 选择了 'America/New_York'

【问题讨论】:

strtotime() 函数之前使用date_default_timezone_set('America/New_York');,Same Question here 【参考方案1】:

首先,你应该设置你的时区,就像警告已经告诉你的那样:

date_default_timezone_set('America/Los_Angeles');

然后,您应该查看the manual,在Localized Notations 下,您会看到,php 将31/01/2015 解析为American month, day and year(格式为m/d/Y,而不是您的d/m/Y假设)。见demo。

您的日期格式是自定义的,您应该将其视为一种。将格式转换为/.,因此输出日期将为31.01.2015,php 将其理解为d.m.Y 格式。见demo。

恕我直言,打赌是使用DateTime::createFromFormat(),只需告诉方法您希望输入什么,如下所示:

$date = DateTime::createFromFormat('d/m/Y g:i:s A', $input);
echo $date->format('Y-m-d H:i:s');

demo

【讨论】:

您的演示无法正常工作。 @St3phan:你能告诉我们你的$input吗?【参考方案2】:

把它放在你的 strtotime 函数之前:

date_default_timezone_set('America/New_York')

这是一个来自 PHP.net 的示例:

<?php
    date_default_timezone_set('America/Los_Angeles');

    $script_tz = date_default_timezone_get();

    if (strcmp($script_tz, ini_get('date.timezone')))
        echo 'Script timezone differs from ini-set timezone.';
     else 
        echo 'Script timezone and ini-set timezone match.';
    
?>

【讨论】:

127.0.0.1/test.php?process_time=31%2F01%2F2015+12%3A46%3A56+AM 这里是我的代码 date_default_timezone_set('America/Los_Angeles'); echo $process_time = date('Y-m-d H:i:s',strtotime(urldecode($_REQUEST['process_time'])));但不打印【参考方案3】:

试试这个

$dt = "02/09/2015 11:33:22 AM";
$expDate = explode('/',$dt);
$newdate = $expDate[1]."/".$expDate[0]."/".$expDate[2];
$test = new DateTime($newdate);
echo date_format($test, 'Y-m-d H:i:s');

【讨论】:

以上是关于无法在php中更改日期格式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中转换日期格式[重复]

在jQuery datepicker中更改日期格式与MySQL格式相同[重复]

无法快速更改旧日期格式的新日期格式?

将 PHP 日期格式映射到 Javascript [重复]

php将日期格式转换为mysql格式以进行插入[重复]

如何从现有格式转换php中的日期格式[重复]