PHP date weekdag
Ik ben op zoek naar een mogelijkheid in PHP om de datum van elke donderdag 21:00 weer te geven. Nu heb ik gekeken bij PHP date, alleen hier kan ik niets nuttigs vinden hiervoor. Het moet zo worden:
Totaal:
020120142100
PHP date:
Quote:
echo date('d m y 2100');
Alleen het werkt niet en hoe moet ik de datum van alleen donderdag om 21:00u ophalen? Via een if or else code?
kan iemand mij hier mee helpen? Alvast bedankt!
Een datum is YYYYMMDDHHiiss
Alleen niet diegene die je verwacht ;-)
Quote:
19-09-2038 1111:0909:36
Code (php)
http://www.w3schools.com/php/func_date_date.asp
Gewijzigd op 31/12/2013 00:18:24 door Bodi Boele
Bij mij 14-08-1902 0404:0808:28
http://3v4l.org/28MAV ;-)
Benieuwd waar het verschil in zit.. Windows misschien? Eens testen...
Gewijzigd op 31/12/2013 00:21:37 door - Ariën -
Aar, komt dat niet door de kleine script veranderingen zodat wij data's langer kunnen opslaan??
Quote:
14-08-1902 0505:0808:08
Het komt in de buurt, maar we weten waar het verschil vandaan komt. Het getal is ook geen fatsoenlijke UNIX-epoch, maar desondanks krijg je er wel per OS verschillende grappige onrealistische resultaten voor terug.
Die eerste snap ik niet maar deze die je nu laat zien staat in een andere tijdzone zo te zien.
Testje:
Code (php)
Op mijn lokale windows machine:
Op mijn linux server:
Gewijzigd op 31/12/2013 00:55:17 door Erwin H
Code (php)
Gewijzigd op 31/12/2013 13:24:32 door Ivo P
Dat script werkt pas vanaf morgen :)
:-)
Ivo P op 31/12/2013 13:24:03:
Nu wil ik de vorige donderdag hebben, en heb dus next veranderd in previous. Alleen nu krijg ik duizenden datums, en ik wil alleen maar de eerste want dat is de goede. Hier de eerste 4 die ik krijg, van de duizenden.
Quote:
2013-12-26 21:002013-12-19 21:002013-12-12 21:002013-12-05 21:00
Het dikgedrukte stukje moet ik hebben, hoe kun je dit het beste oplossen?
ik ging in mijn script uit van "alle in 2014"
Dat wordt in regel 4 bepaald: jaar == 2014
Als je vanaf nu achteruit wilt, dan moet je ook op de een of adere manier opgeven wat je eindpunt gaat zijn.
Of als het er maar 1 is: dan heb je natuurlijk geen while-lus nodig en vervallen de regels 4,5 en 8
Ernesto Bleijenberg op 31/12/2013 14:23:30:
Nu wil ik de vorige donderdag hebben, en heb dus next veranderd in previous.
Okay, wat je PHP vraagt, is vorige donderdag, dan de donderdag daarvoor, dan die daarvoor, dan die daarvoor ... en dan stopt pas wanneer we later zijn dan 2014.
Dan kan je inderdaad oneindig blijven zoeken.
Zo werkt een lus nu eenmaal.
Wil je enkel 1 waarde, bv. vorige donderdag, dan mag die ->modify() niet binnen de while staan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$startdate = new DateTime('now');
$daynr = $startdate->format('w');
$daysdiff = $daynr - 4; // donderdag is dag 4 nu $daynr - 4; ipv 4 - $daynr;
if($daysdiff < 0)
$daysdiff += 7;
$prevThursday = $startdate->sub(new DateInterval('P'.$daysdiff.'D')); // nu sub() in plaats van add()
echo $prevThursday->format('d-m-Y') . ' ' . $prevThursday->format('dmY2100') . '<br>';
?>
$startdate = new DateTime('now');
$daynr = $startdate->format('w');
$daysdiff = $daynr - 4; // donderdag is dag 4 nu $daynr - 4; ipv 4 - $daynr;
if($daysdiff < 0)
$daysdiff += 7;
$prevThursday = $startdate->sub(new DateInterval('P'.$daysdiff.'D')); // nu sub() in plaats van add()
echo $prevThursday->format('d-m-Y') . ' ' . $prevThursday->format('dmY2100') . '<br>';
?>
Gewijzigd op 31/12/2013 14:42:56 door Frank Nietbelangrijk
Ivo P op 31/12/2013 14:36:32:
hoeveel moet je er hebben?
ik ging in mijn script uit van "alle in 2014"
Dat wordt in regel 4 bepaald: jaar == 2014
Als je vanaf nu achteruit wilt, dan moet je ook op de een of adere manier opgeven wat je eindpunt gaat zijn.
Of als het er maar 1 is: dan heb je natuurlijk geen while-lus nodig en vervallen de regels 4,5 en 8
ik ging in mijn script uit van "alle in 2014"
Dat wordt in regel 4 bepaald: jaar == 2014
Als je vanaf nu achteruit wilt, dan moet je ook op de een of adere manier opgeven wat je eindpunt gaat zijn.
Of als het er maar 1 is: dan heb je natuurlijk geen while-lus nodig en vervallen de regels 4,5 en 8
Het werkt nu, ik heb de while lus verwijderd en krijg nu de datum van afgelopen donderdag. Enorm bedankt!