Henry: Cronjob

Beitrag lesen

Hallo Meowsalot,

was sagt ihr zu meiner Lösung?

sieht erst mal sehr gut aus. Müsstest mal einen Testlauf mit zukünftigen Daten der nächsten Jahre machen.

Ich hatte zwischenzeitlich, aufgrund deiner letzten Antwort einen anderen, vielleicht viel zu komplexen, Ansatz. Ich hatte nämlich dabei den Eindruck, dass es dir gar nicht nur um den Freitag geht, sondern die ganze Woche und du eine Art Newsletter entwickelst, der abhängig vom Eintragsdatum individuell alle 2 Wochen senden soll.

Da wäre jetzt die ganz einfache Lösung, die ich schon genannt hatte, sofern du immer den jeweilig letzten Aussendetag speicherst und von dort 2 Wochen weiter rechnen lässt.

Wenn das aber nicht so ist, sondern beliebigen Spielraum haben möchtest, dann mal hier als Anregung. (Wie gesagt, ist schon spät und daher viell. auch zu kompliziert gedacht)

Wenn beliebiger Wochentag, dann auch cjob einmal am Tag.


<?php

$user_start = '2018-07-06';


// Als Beispiel zukünftiges Datum
$heute = 1534464000;  // entspricht Fr. 2018-08-17

$heute2 = 1535068800;  // entspricht Fr. 2018-08-24


function chk2weeks($start, $now, $max = 200)
{

// testet alle 2wochen Zieltage(maximal in $max)

for($i=1; $i < $max; $i++){
$next = strtotime( "$start +2 week" );

// könntest jetzt auch mal alles in ein array speichern um zu testen was passiert
# $alltargets[] = date("D, d.m.Y", $next).' -> '.$next.'  | '.date("dmY",$now).'  --- '.date("dmY",$next);


if( date("dmY",$now) == date("dmY",$next) ){$ok=1;break;}

$start = date("Y-m-d",$next);

} //end for

// Nur Testausgabe, falls du es mal ins Array gespeichert hast
# print_r($alltargets);

if($ok){return $now;}
return false;


  
} // end func.




echo '<h3>Wenn heute Fr. 2018-08-17 wäre</h3>';

if(chk2weeks($user_start,$heute))
{
// Wenn es zutrifft, kannst du hier nun deine Anweisung geben, was passieren soll.

echo 'ja mail soll gesendet werden';
}
else{echo 'Datum nicht passend, keine Mail senden';}


echo '<h3>Wenn heute Fr. 2018-08-24 wäre</h3>';

if(chk2weeks($user_start,$heute2))
{
// Wenn es zutrifft, kannst du hier nun deine Anweisung geben, was passieren soll.

echo 'ja mail soll gesendet werden';
}
else{echo 'Datum nicht passend, keine Mail senden';}


?>

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“