strtotime() probleem 2 Verschil in dagen tussen twee datums

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yanick de Jong

Yanick de Jong

22/10/2010 18:14:12
Quote Anchor link
Ik heb een soortgelijk probleem en om iemands anders zijn topic niet te vervuilen een nieuw topic aangemaakt. Ik wil het verschil in dagen weten tussen een twee datums. Op mijn laptop draait het goed en krijg ik keurig afgerond het getal 91 terug op de server waar het op moet draaien het getal 10653. Voor mij een raadsel. Ik denk ergens een instelling.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$start_datetime
= '01-09-2010 00:00:00'; // Start date/time when the poll must start (format dd-mm-yyyy hh:mm:ss)
$end_datetime = '30-11-2010 23:59:59'; // End date/time when the poll must stop (format dd-mm-yyyy hh:mm:ss)
echo $start_datetime;
echo "<br>";
echo $end_datetime;
echo "<br>";

$start = explode(" ",$start_datetime);
$end = explode(" ",$end_datetime);    
echo $start[0], $end[0]    ;
echo "<br>";
$days = (strtotime($end[0]) - strtotime($start[0])) / (60 * 60 * 24);
echo ceil($days);

?>


Als ik date_default_timezone_set('CET'); aan het begin van het script zet krijg een foutmelding.

Fatal error: Call to undefined function: date_default_timezone_set() in /mnt/web2/10/31/51359131/htdocs/develop/poll/polljw2011.php on line 16

Of ligt dat soms aan de php versie 4.4.9 op de server. Ik begin het probleem te begrijpen. Op mijn laptop 5.3.2. In neem aan dat het dus aan de php versie ligt, maar hoe los ik dit nu op?
 
PHP hulp

PHP hulp

28/11/2024 18:05:14
 
- SanThe -

- SanThe -

22/10/2010 18:26:01
Quote Anchor link
Yanick de Jong op 22/10/2010 18:14:12:
Of ligt dat soms aan de php versie 4.4.9 op de server. Ik begin het probleem te begrijpen. Op mijn laptop 5.3.2. In neem aan dat het dus aan de php versie ligt, maar hoe los ik dit nu op?


PHP Updaten.
 
Yanick de Jong

Yanick de Jong

22/10/2010 18:28:27
Quote Anchor link
Ja, alleen die oplossing is niet mogelijk aangezien het bij hostingprovider draait. Kan natuurlijk wel eeens een verzoek er voor indienen. Maar hoe zou ik het progammeertechnisch op kunnen lossen. Ik ben ook al tevreden als het alleen op de server werkt.
 
- SanThe -

- SanThe -

22/10/2010 18:53:15
Quote Anchor link
Moet je alleen uitgaan van die 2 strings?

Toevoeging op 22/10/2010 19:15:42:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);


$start_datetime = '01-09-2010 00:00:00'; // Start date/time when the poll must start (format dd-mm-yyyy hh:mm:ss)
$end_datetime = '30-11-2010 23:59:59'; // End date/time when the poll must stop (format dd-mm-yyyy hh:mm:ss)
echo $start_datetime;
echo "<br>";
echo $end_datetime;
echo "<br>";

$start = explode(" ",$start_datetime);
$start_date = explode("-",$start[0]);
$start_time = explode(":",$start[1]);
$end = explode(" ",$end_datetime);
$end_date = explode("-",$end[0]);
$end_time = explode(":",$end[1]);

$start_totaltime = mktime($start_time[0], $start_time[1], $start_time[2], $start_date[1], $start_date[0], $start_date[2]);
$end_totaltime = mktime($end_time[0], $end_time[1], $end_time[2], $end_date[1], $end_date[0], $end_date[2]);
echo "<br>";

$difference = $end_totaltime - $start_totaltime;
$days = floor($difference / (60 * 60 * 24));
$difference = $difference - ($days * 60 * 60 * 24);
$hours = floor($difference / (60 * 60));
$difference = $difference - ($hours * 60 * 60);
$minutes = floor($difference / (60));
$difference = $difference - ($minutes * 60);
$seconds = $difference;


echo $days . ' dagen, ' . $hours . ' uren, ' . $minutes . ' minuten en ' . $seconds . ' seconden.';

?>
 
Yanick de Jong

Yanick de Jong

22/10/2010 19:16:44
Quote Anchor link
Ja, alleen van de twee strings uitgaand ja of hoe had je anders gedacht, geef maar een voorbeeld hoe jij denkt dat het moet of beter kan. Alle opties zijn welkom als het maar het aantal dagen verschil tussen twee datums laat zien en dus werkt in php 4.4.9 en eventueel ook in 5.3.2
 
- SanThe -

- SanThe -

22/10/2010 19:23:29
Quote Anchor link
Die strings zitten niet echt in een handig format, vandaar de vraag.
Maar zie mijn aanvulling.
 
Yanick de Jong

Yanick de Jong

23/10/2010 09:06:09
Quote Anchor link
Ik heb de php manual gelezen dat mktime de tijd berekend van af 1970 ...... Kan jij aangeven waardoor het probleem ontstaat dat de huidig tijd om mijn laptop (php5.3.2) niet correct wordt weergegeven, namelijk twee uur te vroeg. Dus als het 8 uur is dan geeft deze 6 uur aan. Op de server met php 4.4 werkt het overigens wel goed.

Spelen met de volgende value date_default_timezone_set('UTC'); doet in mij geval niks.
 



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.