2024 年 PHP 日本大会

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 中,关于平年中的 Adar 月份的功能发生了变化。在 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 年前
如果您希望将希伯来语日期格式化为这样(忽略括号):[כ"ז סיון ה'תשע"ה],由于这三个位掩码都不包含此格式,您可以使用 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是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'; // 这是 Adar 2
1
Sergio Z
2年前
要检查犹太年是否是闰年,请使用此函数

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

在平年里只有一个Adar,它的数字是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