如何獲取PHP中的農(nóng)歷日期

PHP
小樊
86
2024-08-31 02:02:42

要在 PHP 中獲取農(nóng)歷日期,您可以使用第三方庫(kù),例如 “pecl-intl” 擴(kuò)展或 “overtrue/chinese-calendar” 包

  1. 使用 “pecl-intl” 擴(kuò)展:

首先,確保已安裝并啟用 “pecl-intl” 擴(kuò)展。然后,您可以使用 IntlCalendar 和 IntlGregorianCalendar 類來(lái)計(jì)算農(nóng)歷日期。

<?php
// 創(chuàng)建公歷日期
$gregorianDate = new DateTime('2022-01-01');

// 創(chuàng)建農(nóng)歷日歷對(duì)象
$lunarCalendar = IntlCalendar::createInstance('Asia/Shanghai', 'root@chinese');
$lunarCalendar->set(IntlCalendar::FIELD_IS_LEAP_MONTH, 0);

// 設(shè)置公歷日期
$lunarCalendar->set($gregorianDate->format('Y'), $gregorianDate->format('n') - 1, $gregorianDate->format('j'));

// 獲取農(nóng)歷日期
$lunarYear = $lunarCalendar->get(IntlCalendar::FIELD_YEAR);
$lunarMonth = $lunarCalendar->get(IntlCalendar::FIELD_MONTH) + 1;
$lunarDay = $lunarCalendar->get(IntlCalendar::FIELD_DAY_OF_MONTH);

echo "農(nóng)歷日期:{$lunarYear}{$lunarMonth}{$lunarDay}日";
?>
  1. 使用 “overtrue/chinese-calendar” 包:

首先,通過(guò) Composer 安裝 “overtrue/chinese-calendar” 包:

composer require overtrue/chinese-calendar

然后,您可以使用以下代碼獲取農(nóng)歷日期:

<?php
require 'vendor/autoload.php';

use Overtrue\ChineseCalendar\Calendar;

// 創(chuàng)建公歷日期
$gregorianDate = new DateTime('2022-01-01');

// 獲取農(nóng)歷日期
$lunarDate = Calendar::solarToLunar($gregorianDate->format('Y'), $gregorianDate->format('n'), $gregorianDate->format('j'));

echo "農(nóng)歷日期:{$lunarDate['year']}{$lunarDate['month']}{$lunarDate['day']}日";
?>

這兩種方法都可以用于獲取給定公歷日期的農(nóng)歷日期。選擇哪種方法取決于您的需求和項(xiàng)目環(huán)境。

0