When using mode 1 or 2, the number returned will NOT match mode 0.
jddayofweek(0, 1) = 'Monday' not 'Sunday' as expected.
This can cause discordance between the UI and the value saved.
(PHP 4, PHP 5, PHP 7, PHP 8)
jddayofweek — Bestimmt den Wochentag aus einem Julianischen Datum
Diese Funktion bestimmt den Wochentag für den in
julianday
übergebenen Tag im Julianischen
Datum. Die Ausgabe erfolgt in Abhängigkeit von
mode
als integer oder string.
julian_day
Ein Julianischer Tag als Integer
mode
Modus | Bedeutung |
---|---|
0 (Default) | Rückgabe des Wochentages als Zahl (0=Sonntag, 1=Montag, etc.) |
1 | Rückgabe des Wochentages als String (in Englisch) (English-Gregorian) |
2 | Rückgabe des Wochentages als abgekürzter String (in Englisch) |
Der Gregorianische Wochentag als Integer oder String.
When using mode 1 or 2, the number returned will NOT match mode 0.
jddayofweek(0, 1) = 'Monday' not 'Sunday' as expected.
This can cause discordance between the UI and the value saved.
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.