2024 年 PHP Conference Japan

jdtojewish

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtojewish將儒略日計數轉換為猶太曆日期

說明

jdtojewish(int $julian_day, bool $hebrew = false, int $flags = 0): string

將儒略日計數轉換為猶太曆日期。

參數

julian_day

儒略日數,整數值。

hebrew

如果 hebrew 參數設為 true,則 flags 參數將用於希伯來文輸出格式,以 ISO-8859-8 編碼的字串表示。

flags

位元遮罩,可以包含 CAL_JEWISH_ADD_ALAFIM_GERESHCAL_JEWISH_ADD_ALAFIMCAL_JEWISH_ADD_GERESHAYIM

返回值

根據 hebrew 參數,傳回格式為「月/日/年」的字串形式的猶太日期,或 ISO-8859-8 編碼的希伯來文日期字串。

範例

範例 #1 jdtojewish() 範例

<?php
$jd
= gregoriantojd(10, 8, 2002);
echo
jdtojewish($jd, true), PHP_EOL,
jdtojewish($jd, true, CAL_JEWISH_ADD_GERESHAYIM), PHP_EOL,
jdtojewish($jd, true, CAL_JEWISH_ADD_ALAFIM), PHP_EOL,
jdtojewish($jd, true,CAL_JEWISH_ADD_ALAFIM_GERESH), PHP_EOL;
?>

以上範例將輸出:

ב חשון התשסג
ב' חשון התשס"ג
ב חשון ה אלפים תשסג
ב חשון ה'תשסג

參見

新增註釋

使用者貢獻的註釋 10 個註釋

12
adam at tadam dot co dot il
12 年前
<?php
// 以希伯來文顯示希伯來日期
$str = jdtojewish(gregoriantojd( date('m'), date('d'), date('Y')), true, CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH); // 顯示今天的日期
$str1 = iconv ('WINDOWS-1255', 'UTF-8', $str); // 轉換為 UTF-8

echo $str1; // 2012/03/23 顯示:כ"ט אדר ה' אלפים תשע"ב

// 或
$str = jdtojewish(gregoriantojd( date('m'), date('d'), date('Y')), true, CAL_JEWISH_ADD_GERESHAYIM); // 顯示今天的日期
$str1 = iconv ('WINDOWS-1255', 'UTF-8', $str); // 轉換為 UTF-8

echo $str1; // 2012/03/23 顯示:כ"ט אדר התשע"ב
?>
9
eclipsechasers2 at yahoo dot com
9 年前
PHP 5.5 版關於非閏年的亞達爾月的功能有所變更。在 5.5 之前的版本中,該月份會回傳 6。在 5.5 和 5.6 版中,該月份會回傳 7。此差異並未列在「PHP 5.5.x 的變更內容」中。
4
asphp at dsgml dot com
17 年前
此函數以 ISO-8859-8-l 編碼輸出。

要轉換為 Unicode UTF-8,請執行以下操作

<?php

echo mb_convert_encoding( jdtojewish( unixtojd(), true ), "UTF-8", "ISO-8859-8");

?>
3
Berel
4 年前
如果您希望將希伯來日期格式化為 [כ"ז סיון ה'תשע"ה](忽略括號),由於 3 個位元遮罩皆不包含此格式,您可以使用 CAL_JEWISH_ADD_GERESHAYIM 遮罩,然後使用第二行將 ' 插入年份中,如下所示

$hebdate = jdtojewish(gregoriantojd(6,14,2015),1,CAL_JEWISH_ADD_GERESHAYIM);
$hebdate = substr_replace($hebdate,"'",strrpos($hebdate," ")+2,0);
3
gr8g0thamguy at yahoo dot com
21 年前
基於 Dave 已發佈的程式碼,我修改了它以在頁面上顯示*目前*日期

<?php

$gregorianMonth
= date(n);
$gregorianDay = date(j);
$gregorianYear = date(Y);

$jdDate = gregoriantojd($gregorianMonth,$gregorianDay,$gregorianYear);

$hebrewMonthName = jdmonthname($jdDate,4);

$hebrewDate = jdtojewish($jdDate);

list(
$hebrewMonth, $hebrewDay, $hebrewYear) = split('/',$hebrewDate);

echo
"$hebrewDay $hebrewMonthName $hebrewYear";
?>
5
erelsgl at gmail dot com
15 年前
在希伯來曆閏年中,這個函式會傳回 6 代表亞達月一 (Adar A),7 代表亞達月二 (Adar B),8 代表尼散月 (Nisan),以此類推。

在希伯來曆平年中,這個函式會傳回 6 代表亞達月 (Adar),8 代表尼散月 (Nisan),以此類推。

也就是說,「真正的」亞達月是亞達月一 (Adar A)。
2
dave_at_mitzvahweb.com
22 年前
可能有更簡單的方法可以做到這一點,但我需要將公曆日期轉換為希伯來曆日期,並以希伯來月份名稱(而不是數字)顯示。

或許這可以幫助到某些人...

<?php

//使用月份的數字表示法,以變數 $gregorianMonth、$gregorianDay 和 $gregorianYear 輸入您的公曆日期

$jdDate = gregoriantojd ( $gregorianMonth, $gregorianDay, $gregorianYear);

$gregorianMonthName = jdmonthname ( $jdDate, 1 );

$hebrewDate = jdtojewish ($jdDate);

list (
$hebrewMonth, $hebrewDay, $hebrewYear) = split ('/', $hebrewDate);

$hebrewMonthName = jdmonthname ( $jdDate, 4);

echo
"您的希伯來曆日期為: $hebrewDay $hebrewMonthName $hebrewYear";

?>
1
WWW dot netfree at gmail dot com
5 年前
檢查年份是否為閏年,以確定值 7 代表亞達月 (Adar) 還是亞達月二 (Adar 2)

<?php

$hebrewDate
= jdtojewish(gregoriantojd(date('m', $DateStamp), date('d', $DateStamp), date('Y', $DateStamp)));
list(
$hebrewMonth, $hebrewDay, $hebrewYear) = explode('/',$hebrewDate);

$m = array(3, 6, 8, 11, 14, 17, 19);
$meuberet = in_array(($hebrewYear % 19), $m);
if(
$meuberet) if($hebrewMonth == 7) $hebrewMonth = '7b'; //這是亞達月二
1
Sergio Z
2 年前
要檢查猶太曆年是否為閏年,請使用以下函式:

function isJewishLeapYear($year) {
return 0 != cal_days_in_month(CAL_JEWISH, 6, $year);
}

在非閏年中,只有一個亞達月,其編號為 7。沒有 6。
1
erelsgl at gmail dot com
15 年前
有時以 YYYY-MM-DD 格式表示日期會很有用,這種格式可以排序(例如,您可以透過排序字串來排序日期)

<?php
function JDToSortableJewish($jd) {
return
preg_replace("|(\d+)/(\d+)/(\d+)|","$3-$1-$2", // 年-月-日
preg_replace("|/(\d)/|","/0$1/", // 在日期加上零
preg_replace("|^(\d)/|","0$1/", // 在月份加上零
JDToJewish($jd))));
}
?>
To Top