You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP日期函数获取日/月/年方法及日期字符串格式化失败求助

嘿,我来帮你搞定这两个PHP日期相关的问题!

问题1:如何在PHP中获取日、月和年?

分两种场景来处理:

  • 获取当前日期的日、月、年
    直接用date()函数就行,不同的格式符对应不同的日期部分:

    • 日:date('d')(带前导零的两位数字,比如05)或date('j')(不带前导零,比如5)
    • 月:date('m')(两位数字)、date('n')(不带前导零)、date('M')(英文缩写,比如Oct)、date('F')(完整英文月份,比如October)
    • 年:date('Y')(四位数字,比如2019)或date('y')(两位数字,比如19)
      示例代码:
    $currentDay = date('d');
    $currentMonth = date('M');
    $currentYear = date('Y');
    echo "今天是 {$currentYear} 年 {$currentMonth} 月 {$currentDay} 日";
    
  • 获取指定日期的日、月、年
    可以先把日期字符串转成时间戳,或者用更灵活的DateTime类:
    用时间戳的方式:

    $targetDate = '2019-10-19';
    $timestamp = strtotime($targetDate);
    $day = date('d', $timestamp);
    $month = date('M', $timestamp);
    $year = date('Y', $timestamp);
    

    用DateTime类(更推荐,处理复杂日期更靠谱):

    $date = new DateTime('2019-10-19');
    $day = $date->format('d');
    $month = $date->format('M');
    $year = $date->format('Y');
    
问题2:格式化字符串日期为「Oct 01, 2019」形式

你遇到的问题很明确:$my_Schedule是一个字符串(从var_dump的输出能看到它是string类型,内容是"Reviews created : 2019-10-19 03:47:57"),但date()函数的第二个参数要求的是Unix时间戳,不是字符串,所以直接传进去肯定没法正常工作。

给你两个解决方法:

方法一:提取日期部分 + 转时间戳格式化

先从字符串里把日期时间部分提取出来,再转成时间戳后用date()格式化:

// 提取日期时间部分:从冒号后截取并去掉多余空格
$dateStr = trim(strstr($my_Schedule, ':'));
// 转成Unix时间戳
$timestamp = strtotime($dateStr);
// 格式化为你要的「Oct 19, 2019」形式
echo date('M d, Y', $timestamp);

如果担心字符串格式变化,用正则提取更稳妥:

// 用正则匹配日期时间格式
preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $my_Schedule, $matches);
if (!empty($matches[0])) {
    $timestamp = strtotime($matches[0]);
    echo date('M d, Y', $timestamp);
}

方法二:用DateTime类直接解析(更推荐)

DateTime类的createFromFormat方法可以直接按照指定格式解析字符串,不需要转时间戳,处理各种日期格式更灵活:

// 先提取日期时间部分
$dateStr = trim(strstr($my_Schedule, ':'));
// 按照原日期格式解析字符串
$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateStr);
// 输出目标格式
echo $date->format('M d, Y');

内容的提问来源于stack exchange,提问作者Sarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:21:16