在给定扩展日期字符串的 PHP 中,如何以长格式提取月份年份?

发布于 2024-08-28 23:04:08 字数 169 浏览 7 评论 0原文

我尝试的解决方案是:

$date = "Nov 30 2009 03:00:00:000PM";
echo date("F Y", strtotime($date));

预期结果应该是:“2009 年 11 月”

还有其他简单的解决方案吗?

My attempted solution was:

$date = "Nov 30 2009 03:00:00:000PM";
echo date("F Y", strtotime($date));

Expected result should be: "November 2009"

Any other simple solutions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

分开我的手 2024-09-04 23:04:08

虽然正则表达式可以做到这一点,但您可能会更容易理解以下内容

$date_bad = "Nov 30 2009 03:00:00:000PM";

$piece_date = array();
$piece_date = explode(' ', $date_bad);
$date_good = $piece_date[0] .' '. $piece_date[1] .', '. $piece_date[2] .' ';

$piece_time = array();
$piece_time = explode(':', $piece_date[3]);

// check if the last part contains PM
if ( is_numeric(strpos($piece_time[3], 'PM')) )
{
    $ampm = 'PM';
}
// check if the last part contains AM
elseif ( is_numeric(strpos($piece_time[3], 'AM')) )
{
    $ampm = 'AM';
}
// no AM or PM is there, so it's a 24hr string
else
{
    $ampm = ''; 
}

$date_good .= $piece_time[0] .':'. $piece_time[1] .':'. $piece_time[2] . $ampm;

echo date("F", strtotime($date_good));

While a regex could do it, here's something you might understand easier

$date_bad = "Nov 30 2009 03:00:00:000PM";

$piece_date = array();
$piece_date = explode(' ', $date_bad);
$date_good = $piece_date[0] .' '. $piece_date[1] .', '. $piece_date[2] .' ';

$piece_time = array();
$piece_time = explode(':', $piece_date[3]);

// check if the last part contains PM
if ( is_numeric(strpos($piece_time[3], 'PM')) )
{
    $ampm = 'PM';
}
// check if the last part contains AM
elseif ( is_numeric(strpos($piece_time[3], 'AM')) )
{
    $ampm = 'AM';
}
// no AM or PM is there, so it's a 24hr string
else
{
    $ampm = ''; 
}

$date_good .= $piece_time[0] .':'. $piece_time[1] .':'. $piece_time[2] . $ampm;

echo date("F", strtotime($date_good));
臻嫒无言 2024-09-04 23:04:08
date_default_timezone_set  ('Etc/GMT-6');
$unixtime = strtotime($date_bad);
$date = date("F Y",$unixtime);
echo $date;

时区

date_default_timezone_set  ('Etc/GMT-6');
$unixtime = strtotime($date_bad);
$date = date("F Y",$unixtime);
echo $date;

Time Zones

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文