如何获取PHP中的农历日期

avatar
作者
猴君
阅读量:0

要在 PHP 中获取农历日期,您可以使用第三方库,例如 “pecl-intl” 扩展或 “overtrue/chinese-calendar” 包

  1. 使用 “pecl-intl” 扩展:

首先,确保已安装并启用 “pecl-intl” 扩展。然后,您可以使用 IntlCalendar 和 IntlGregorianCalendar 类来计算农历日期。

<?php // 创建公历日期 $gregorianDate = new DateTime('2022-01-01');  // 创建农历日历对象 $lunarCalendar = IntlCalendar::createInstance('Asia/Shanghai', 'root@chinese'); $lunarCalendar->set(IntlCalendar::FIELD_IS_LEAP_MONTH, 0);  // 设置公历日期 $lunarCalendar->set($gregorianDate->format('Y'), $gregorianDate->format('n') - 1, $gregorianDate->format('j'));  // 获取农历日期 $lunarYear = $lunarCalendar->get(IntlCalendar::FIELD_YEAR); $lunarMonth = $lunarCalendar->get(IntlCalendar::FIELD_MONTH) + 1; $lunarDay = $lunarCalendar->get(IntlCalendar::FIELD_DAY_OF_MONTH);  echo "农历日期:{$lunarYear}{$lunarMonth}{$lunarDay}日"; ?> 
  1. 使用 “overtrue/chinese-calendar” 包:

首先,通过 Composer 安装 “overtrue/chinese-calendar” 包:

composer require overtrue/chinese-calendar 

然后,您可以使用以下代码获取农历日期:

<?php require 'vendor/autoload.php';  use Overtrue\ChineseCalendar\Calendar;  // 创建公历日期 $gregorianDate = new DateTime('2022-01-01');  // 获取农历日期 $lunarDate = Calendar::solarToLunar($gregorianDate->format('Y'), $gregorianDate->format('n'), $gregorianDate->format('j'));  echo "农历日期:{$lunarDate['year']}{$lunarDate['month']}{$lunarDate['day']}日"; ?> 

这两种方法都可以用于获取给定公历日期的农历日期。选择哪种方法取决于您的需求和项目环境。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!