[php] Zomer- en Wintertijd

Pagina: 1
Acties:
  • 179 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een vraagje over zomer- en windertijd binnen php. Voor een urenregistratiesysteem kunnen gebruikers hun uren ingeven dat ze gewerkt hebben. Nu is het echter zo dat er tijdens het ingaan van de wintertijd op één dag 25 uur gewerkt kan worden, en op ingang van zomertijd 23 uur gewerkt kan worden. Dit alles werkt verder prima en wordt ook zo afgehandeld binnen het systeem. Omdat er echter soms onduidelijkheid is bij mensen waar dat extra uurtje, of dat uurtje minder nou vandaan komt wil ik op die dag weergeven dat er sprake is van ingang van zomer- of windertijd.

Mijn vraag is dus eigenlijk relatief simpel, is er een eenvoudige manier binnen php om te checken of er sprake is van zomertijd/wintertijd op een betreffende dag? Ik heb de volgende wordarounds bedacht, maar vind het niet heel erg prettig omdat ik bang ben dat het onnodige vertraging met zich meebrengt en dat er een simpelere manier is:

* 2 timestamps maken van één dag, waarbij bij de ene als uren en minuten 00:00 wordt ingevoerd en bij de andere 23:59, die 2 timestamps van elkaar aftrekken en dan kijken of er die dag 24:59 / 22:59 aan secondes ipv 23:59 aan secondes is geweest
* tabel met zomer en windertijden, en een check of het van toepassing is op die ene dag

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

date("I", $datum). Zie ook de manual. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Dat kan date() gewoon :)

I (capital i) Whether or not the date is in daylights savings time 1 if Daylight Savings Time, 0 otherwise.

Oeps. Ik had F5 moeten drukken :)

[ Voor 13% gewijzigd door G33rt op 17-12-2005 20:24 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oops... Wat ontzettend stom, ik had wel bij de functies mktime / strftime etc. gekeken en op google gezocht, maar had niet de juiste trefwoordenen gebruikt (Daylight Savings). :)

Nou, super bedankt!!

En jij ook G33rt. :)

[ Voor 6% gewijzigd door Verwijderd op 17-12-2005 20:25 ]


Acties:
  • 0 Henk 'm!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
Hmm.. en welke afspraken volgt PHP daarbij; altijd die van mijn eigen locale? Eén bepaalde datum+tijd is immers niet wereldwijd zomer- of wintertijd en ik zou dat graag voor gebruikers uit andere locales ook correct weergeven..

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

De locale tijdzone zoals die is ingesteld op de server. gebruik gmdate voor GMT/UTC.
Overigens, zoals uit de manual te lezen valt:
To format dates in other languages, you should use the setlocale() and strftime() functions instead of date().

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Erkens schreef op zaterdag 17 december 2005 @ 22:22:
De locale tijdzone zoals die is ingesteld op de server. gebruik gmdate voor GMT/UTC.
Overigens, zoals uit de manual te lezen valt:

[...]
Maar strftime heeft geen Daylight Savings opties geloof ik, althans, had het niet gezien... :)

[ Voor 8% gewijzigd door Verwijderd op 18-12-2005 01:23 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op zondag 18 december 2005 @ 01:22:
[...]

Maar strftime heeft geen Daylight Savings opties geloof ik, althans, had het niet gezien... :)
true, maar als je daadwerkelijk met meerdere timezones wilt werken kan je misschien met mktime iets prutsen met de is_dst parameter, maar die is deprecated in php 5.1. Echter met php 5 kan je gebruik maken van date_default_timezone_set.
Pagina: 1