Zomer/wintertijd
Ik wil weten of het zomer of wintertijd is van een bepaalde datum.
Quote:
date_default_timezone_set('Europe/Amsterdam');
echo date("I", mktime(0, 0, 0, 10, 28, 2012));
echo date("I", mktime(0, 0, 0, 10, 28, 2012));
28 oktober 2012 begint de wintertijd, dus verwacht ik 0 met bovenstaande, maar ik krijg een 1. Wie weet hoe dat komt?
Alvast bedankt!
Gewijzigd op 25/09/2012 13:34:09 door Remco nvt
Volgens mij begint de zomertijd pas om 02:00 uur en niet om 00:00 uur.
Toevoeging op 25/09/2012 15:57:35:
Heb nog een vraagje.. zie volgende query
SELECT DATE_FORMAT(tijd,'%H:%i') AS tijd FROM tabel WHERE maand='$month' ORDER BY maand, dag
en in mijn result toon ik dan de tijd $data['tijd']
Nou wil ik in mijn result een uur optellen bij de tijd als het zomertijd is, hoe kan ik het beste $data['tijd']+1uur uitvoeren?
MySQL houdt al rekening met zomer- en winteruur, als je een veld op type DATETIME zet.
Geef eens een concreet voorbeeld (situatieschets) van wanneer/waarom je dat uur wil toevoegen.
Ondertussen nog wat lectuur meegeven:
http://www.phphulp.nl/php/tutorial/overig/datum-en-tijdfuncties-in-mysql/519/
Over hoe je in mySQL met datum en tijd kan spelen.
Nou toon ik een overzicht op de website waarin te zien is welke activiteiten er zijn per maand. Maar aangezien de zomer en wintertijden niet op vaste dagen zijn, moet ik dus eind maart en eind oktober (vanaf de 25e tm de 31e) controleren of de zomer/wintertijd al is ingegaan. Indien dat het geval is, wil ik een uur optellen/aftrekken van de tijd die in de database staat.
Ik hoop dat het een beetje duidelijk is wat ik probeer te doen.
Bedankt voor de link, ik zal gelijk een kijkje nemen.
Toevoeging op 25/09/2012 19:10:27:
Heel omslachtig, maar dit werkt:
date("H:i", mktime(date_create('2012-01-01 '.$data['tijd'].':00')->format('H')+1, date_create('2012-01-01 '.$data['tijd'].':00')->format('i'), 0, 9, 25, 2012))
Als dit korter kan, lees ik het graag.
Wat jij wilt doen is steeds om 13:00... ook bij wintertijd.
Tenzij je toevallig net tussen 02:00 en 0:30 op die nacht iets wilt doen..
Toevoeging op 25/09/2012 19:41:56:
Maar goed, het volgende werkt nu wel goed:
if($data['maand']=='3' AND $data['dag']>='25' AND date("I", mktime(5, 0, 0, $data['maand'], $data['dag'], $year))) {
$data['tijd'] = date("H:i", mktime(date_create('2012-01-01 '.$data['tijd'].':00')->format('H')+1, date_create('2012-01-01 '.$data['tijd'].':00')->format('i'), 0, 9, 25, 2012));
}
elseif($data['maand']=='10' AND $data['dag']>='25' AND !date("I", mktime(5, 0, 0, $data['maand'], $data['dag'], $year))) {
$data['tijd'] = date("H:i", mktime(date_create('2012-01-01 '.$data['tijd'].':00')->format('H')-1, date_create('2012-01-01 '.$data['tijd'].':00')->format('i'), 0, 9, 25, 2012));
}