JDDayOfWeek

(PHP 4, PHP 5, PHP 7)

JDDayOfWeek返回星期的日期

说明

mixed jddayofweek ( int $julianday [, int $mode = CAL_DOW_DAYNO ] )

返回星期的日期,根据模式不同可能是字符串或是整数。

参数

julianday

一个julian天数。

mode
历法星期模式
Mode Meaning
0 (默认) 返回数字形式(0=Sunday, 1=Monday, etc)
1 返回字符串形式 (English-Gregorian)
2 返回缩写形式的字符串 (English-Gregorian)

返回值

数字或字符串形式的星期数。

User Contributed Notes

kevind at communitycolor dot com 03-Mar-2017 05:24
You need to check to see how your client wants to represent the day of week. This function returns 0 for Sundays. ISO 8601 uses 7 for Sundays.

BTW, You can also calculate the day of week with modular division:

$dow = (1 + $julianday) % 7; // returns 0 for Sundays.
$dow = ($julianday % 7) + 1; // returns 7 for Sundays.

https://en.wikipedia.org/wiki/Julian_day#Finding_day_of_week_given_Julian_day_number

To make matters confusing. The Julian Date starts at noon UTC. Some programs such as SQLITE3 use real numbers to record date and time. If you pass this function a float; it will return a different day of week for the morning than for the afternoon.

When given a julianday with a decimal part you will need to add a half day and may need further adjustment for your timezone.
alex a khimich d org 28-Sep-2015 04:01
In my case i had lots of head pain with returning day number using this function.
Here is bypass solution using just date():

<?php
$first_day_of_September
=date('w', strtotime('1-09-2015')); // 2
?>
nrkkalyan at rediffmail dot com 26-Feb-2005 07:08
You can get todays day time and date using this code

<?php
echo date("d")." ";
echo
date("m")." ";
echo
date("Y")." ";
echo
date("h:i:s A");

ECHO
' <br/>';
echo
jddayofweek ( cal_to_jd(CAL_GREGORIAN, date("m"),date("d"), date("Y")) , 1 );
?>
php at xtramicro dot com 07-Sep-2004 05:28
Be aware that date() and mktime() only work as long as you move within the UNIX era (1970 - 2038 / 0x0 - 0x7FFFFFFF in seconds). Outside that era those functions are only generating errors.

In other words: mktime(0, 0, 0, 12, 31, 1969) *DOES NOT* work (and so doesn't date() fed with with mktime()'s result from above). But cal_to_jd(CAL_GREGORIAN, 12, 11, 1969) *DOES WORK*.

And please note that the calendar-extension's functions arguments follow the US date order: month - day - year.