InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare
Thema: PHP - Farbbalken mit Farbänderung je nach Prozent

👤 Jan schrieb am Freitag, den 24 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #11
Leider kann man beim Skript wo ich eine Frage habe, keinen Kommentar schreiben.
Deshalb stelle ich meine Frage hier. Sorry...

Welche Variable zeigt das Datum wann der nächste Neumond ist.
» werner-zenk.de/scripte/berechnungen_mit_dem_datum.php#mondphase
👤 Werner schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #12
Die Variable $phase[$aktuellephase] enthält die Werte:

Diesen Beitrag vollständig anzeigen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
// Mondphase berechnen (Umwandlung eines ehemaligen Visual-Basic Scripts)
function mondphase($tag$monat$jahr) {
 
$phase = array("Vollmond""Abnehmender Dreiviertelmond""Letztes Viertel""Abnehmender Halbmond""Neumond""Zunehmender Neumond""Erstes Viertel""Zunehmender Dreiviertelmond");
 
$tag $tag 2;
 
// Wichtige Werte berechnen
 
$jahr $jahr intval((12 $monat) / 10);
 
$monat $monat 9;
 if (
$monat >= 12) {
  
$monat $monat 12;
 }
 
$k1 intval(365.25 * ($jahr 4712));
 
$k2 intval(30.6 $monat .5);
 
// $julian = Julianisches Datum um 12h UT am gewünschten Tag
 
$julian $k1 $k2 $tag 59;
 
// Synodische Phase berechnen
 
$ynodische_phase = ($julian 2451550.1) / 29.530588853;
 
$ynodische_phase $ynodische_phase intval($ynodische_phase);
 if (
$ynodische_phase 0) {
  
$ynodische_phase $ynodische_phase 1;
 }
 
// Mondalter in Tagen
 
$mondalter intval($ynodische_phase 29.53);
 if (
$mondalter == || $mondalter == 29) {$aktuellephase 0;}
 else if (
$mondalter >= && $mondalter <= 6) {$aktuellephase 1;}
 else if (
$mondalter == 7) {$aktuellephase 2;}
 else if (
$mondalter >= && $mondalter <= 13) {$aktuellephase 3;}
 else if (
$mondalter == 14) {$aktuellephase 4;}
 else if (
$mondalter >= 15 && $mondalter <= 21) {$aktuellephase 5;}
 else if (
$mondalter == 22) {$aktuellephase 6;}
 else if (
$mondalter >= 23 && $mondalter <= 28) {$aktuellephase 7;}
 else {
$aktuellephase 4;}
 return 
$phase[$aktuellephase];
}

$monde = [];
for (
$tag 1$tag <= 31$tag++) {
 
$monde[$tag] = mondphase($tag102021);
}

echo 
'<pre>';
print_r($monde);
?>

Array
(
[1] => Abnehmender Halbmond
[2] => Abnehmender Halbmond
[3] => Abnehmender Halbmond
[4] => Abnehmender Halbmond
[5] => Neumond
[6] => Zunehmender Neumond
[7] => Zunehmender Neumond
[8] => Zunehmender Neumond
[9] => Zunehmender Neumond
[10] => Zunehmender Neumond
[11] => Zunehmender Neumond
[12] => Zunehmender Neumond
[13] => Erstes Viertel
[14] => Zunehmender Dreiviertelmond
[15] => Zunehmender Dreiviertelmond
[16] => Zunehmender Dreiviertelmond
[17] => Zunehmender Dreiviertelmond
[18] => Zunehmender Dreiviertelmond
[19] => Zunehmender Dreiviertelmond
[20] => Vollmond
[21] => Vollmond
[22] => Abnehmender Dreiviertelmond
[23] => Abnehmender Dreiviertelmond
[24] => Abnehmender Dreiviertelmond
[25] => Abnehmender Dreiviertelmond
[26] => Abnehmender Dreiviertelmond
[27] => Abnehmender Dreiviertelmond
[28] => Letztes Viertel
[29] => Abnehmender Halbmond
[30] => Abnehmender Halbmond
)
Demnach ist am 5 Oktober Neumond.
👤 Jan ✶✶✶✶✶ schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #13
Vielen Dank
Das Array wird mir ausgegeben.
Wie kann ich das Datum auslesen vom nächsten Vollmond oder Neumond?
👤 Werner schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #14
$monde = [];
$monat = date("n");
$jahr = date("Y");

for ($tag = 1; $tag <= 31; $tag++) {
$monde[$tag . '.' . $monat . '.' . $jahr] = mondphase($tag, $monat, $jahr);
}

$key = array_search('Neumond', $monde);
echo $key;
👤 Jan ✶✶✶✶✶ schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #15
Genial! Vielen Dank! !!
Du bist SUPER 😀
👤 Jan ✶✶✶✶✶ schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #16
Jetzt zeigt es mir mit $key = array_search('Vollmond', $monde);
wann der Vollmond war (21.9.2021) und nicht wann der nächste Vollmond ist.
👤 Werner schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #17
$jahr = date("Y");
$monat = date("n")+1;
if ($monat > 12) {
$monat = 1;
$jahr++;
}
👤 Jan Kuster ✶✶✶✶✶ schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #18
Super 👍
👤 Jan ✶✶✶✶✶ schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #19
Da nicht jeder Monat 31 Tage hat, habe ich dir for Schleife mit dem erweitert.
$tage = cal_days_in_month(CAL_GREGORIAN, $monat, $jahr);

Würdest du das auch so machen?
👤 Werner schrieb am Samstag, den 25 September 2021 zum Thema: PHP - Farbbalken mit Farbänderung je nach Prozent #20
Ja, eine alternative wäre:
$tage = date("t", mktime(0, 0, 0, $monat, 1, $jahr));