PHP datum problemen
Ik verschillende scripts gebruik ik volgende script regels mbt bepalen welke dag het is
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$nieuwjaar = new \DateTime($jaar . "-01-01");
$pasen = new \DateTime();
$pasen->setTimestamp(easter_date($jaar));
$paasMaandag = clone $pasen;
$paasMaandag->add(new \DateInterVal('P1D'));
?>
$nieuwjaar = new \DateTime($jaar . "-01-01");
$pasen = new \DateTime();
$pasen->setTimestamp(easter_date($jaar));
$paasMaandag = clone $pasen;
$paasMaandag->add(new \DateInterVal('P1D'));
?>
En zo nog nog een aantal. Hier voor bepalen op welke dagen de feestdagen vallen.
Mijn script stopt op deze regels.
Iemand enig idee hoe dat komt en wat ik moet doen om dit weer te laten werken.
Toevoeging op 28/04/2017 19:51:09:
script regels Vanuit http://php.net/manual/en/datetime.construct.php doen het ook niet
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Script stopt op de eerste regel.
Kan dus niet aan script liggen.
Kan het zijn dat er instellingen in Cpanel niet goed staan?
Gewijzigd op 28/04/2017 19:58:17 door - Ariën -
Wat meldt de error_log?
De foutenlog in Cpanel is leeg. Of is er ergens anders nog een error log te vinden (heb daar nog niet zo veel ervaring mee).
Krijg de volgende errors:
Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.' in /home/marmotte2003/public_html/batch/testDateTime.php on line 50
( ! ) Exception: DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/marmotte2003/public_html/batch/testDateTime.php on line 50
En op die regel staat deze code:
$date = new DateTime('2000-01-01');
En heb je die configuratie al doorgevoerd?
Code (php)
1
2
3
4
2
3
4
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam
Toevoeging op 28/04/2017 21:59:31:
en als dat niet gaat dan zul je aan het begin van je script dit moeten doen
Toevoeging op 28/04/2017 22:02:35:
En uiteraard ook de webserver herstarten nadat je php.ini aangepast hebt
Toevoeging op 28/04/2017 22:09:51:
date_default_timezone_set('Europe/Amsterdam');
Dit lost het probleem op.
Allen moet ik dit nu in elk script opnemen? Voorheen had ik het nergens staan.
"Loaded Configuration File" in phpinfo. De kans is groot dat je wel root-rechten op de server moet hebben. Anders moet je Frank's oplossing in je PHP-script toevoegen.
Gewijzigd op 28/04/2017 22:11:19 door - Ariën -
Loaded Configuration File /opt/alt/php56/etc/php.ini
Scan this dir for additional .ini files /opt/alt/php56/link/conf
Additional .ini files parsed /opt/alt/php56/link/conf/alt_php.ini
Toevoeging op 28/04/2017 22:17:56:
Geen idee waar ik /opt/alt/php56 kan vinden
- Ariën - op 28/04/2017 22:11:03:
De kans is groot dat je wel root-rechten op de server moet hebben. Anders moet je Frank's oplossing in je PHP-script toevoegen.
Gewijzigd op 28/04/2017 22:23:03 door - Ariën -
Wie host de server? Welk pakket heb je gekozen?
Toevoeging op 28/04/2017 22:38:05:
En bedankt voor de snelle reacties. Top.
Dan zal je geen toegang hebben tot je php.ini.
Gewijzigd op 28/04/2017 22:39:38 door - Ariën -
Dan zou ik even een ticket aanmaken bij de helpdesk. Lijkt mij dat die jongens je daar wel bij kunnen en willen helpen.
.user.ini per directory gebruiken.
Vanaf PHP 5.3 kun je eventueel nog een zou het ook nog in een .htaccess in de document root kunnen
php_value date.timezone 'Region/Zone'