Datetime + 8 uur

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

21/07/2013 10:57:08
Quote Anchor link
Ik heb het volgende script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$datetime =date("d/m/Y") . ' ' . date('H:i:s');


Nu klopt deze tijd niet, en moet er 8 uur bij worden opgeteld. Hoe moet dit?
 
PHP hulp

PHP hulp

21/12/2024 18:53:16
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

21/07/2013 11:02:14
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$datetime
= date('d/m/Y H:i:s', time() + 8*3600);
?>
 

21/07/2013 11:08:30
Quote Anchor link
Bedankt! Het werkt nu.
 
Erwin H

Erwin H

21/07/2013 11:50:22
Quote Anchor link
Ergens heb ik een donkerbruin vermoeden dat er meer aan de hand is.

Hoe komt het dat dat verschil van 8 uur er is? Staat de server soms ergens in een ander land, zeg Amerika? In dat geval is de oplossing van Ger wel leuk, maar krijg je een aantal weken per jaar dat het niet meer klopt. Die 8 uur is dan namelijk het resultaat van een andere tijdzone en de Amerikaanse 'daylight saving' (zomertijd/wintertijd) loopt niet gelijk met de Nederlandse. Wil je dan dus een 'echte' oplossing dan zal je de tijd moeten converteren naar de juiste tijdzone.
 

21/07/2013 11:54:00
Quote Anchor link
Het is inderdaad een gratis webhost van 000webhost, dus zit de server inderdaad niet in Nederland. Het gaat erom dat als er een unieke bezoeker komt, dat die geregristreerd wordt met een ID, IP en Datum. Nu je het zegt: Je kan wel eens gelijk hebben. Hoe voeg ik een tijdzone in? Ik wil dan gewoon de 'Amsterdamse'.
 
Erwin H

Erwin H

21/07/2013 12:28:43
Quote Anchor link
Daar heeft php inmiddels een erg makkelijke DateTimeZone object voor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$date
= new DateTime( time(), new DateTimeZone( 'America/New_York' ) );
$date->setTimeZone( new DateTimeZone( 'Europe/Amsterdam' ) );
echo $date->format( 'd/m/Y H:i:s' );
?>

America/New_York is de timezone van de 000webhost servers, Europe/Amsterdam van jou. Je zet dus eerst de datum/tijd in een DateTime object met de tijdzone van de server, dan converteer je die naar je eigen tijdzone en vervolgens kan je de datum/tijd gebruiken zoals je maar wilt.
 
Koen Vlaswinkel

Koen Vlaswinkel

21/07/2013 12:57:13
Quote Anchor link
Kan je niet ook gewoon aan het begin van het script dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
date_default_timezone_set('Europe/Amsterdam');
?>
 

21/07/2013 19:21:56
Quote Anchor link
Koen Vlaswinkel op 21/07/2013 12:57:13:
Kan je niet ook gewoon aan het begin van het script dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
date_default_timezone_set('Europe/Amsterdam');
?>


Dit werkt helaas niet.

Erwin H op 21/07/2013 12:28:43:
Daar heeft php inmiddels een erg makkelijke DateTimeZone object voor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$date
= new DateTime( time(), new DateTimeZone( 'America/New_York' ) );
$date->setTimeZone( new DateTimeZone( 'Europe/Amsterdam' ) );
echo $date->format( 'd/m/Y H:i:s' );
?>

America/New_York is de timezone van de 000webhost servers, Europe/Amsterdam van jou. Je zet dus eerst de datum/tijd in een DateTime object met de tijdzone van de server, dan converteer je die naar je eigen tijdzone en vervolgens kan je de datum/tijd gebruiken zoals je maar wilt.


Zoals jij het zegt, lijkt het mij te werken, alleen nu is het probleem, dat ik deze niet echo, maar uiteindelijk in een tabel zet.
Gewijzigd op 21/07/2013 19:23:20 door
 
Eddy E

Eddy E

22/07/2013 09:35:11
Quote Anchor link
Vervang de echo door bijvoorbeeld $tijd = en je kan met $tijd doen en laten wat je wilt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.