Ik zit ineens met een probleem na verhuizing van mijn site naar een andere server, waar een andere PHP versie draait (5.6 of 7). Hij staat nu op 5.6.

Ik verschillende scripts gebruik ik volgende script regels mbt bepalen welke dag het is

<?php
$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.

[size=xsmall]Toevoeging op 28/04/2017 19:51:09:[/size]

script regels Vanuit http://php.net/manual/en/datetime.construct.php doen het ook niet

<?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";
?>

Script stopt op de eerste regel.

Kan dus niet aan script liggen.

Kan het zijn dat er instellingen in Cpanel niet goed staan?
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).
Zet de foutrapportage eens aan door dit bovenaan je script te zetten:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>
bedankt voor deze tip.

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?
In php.ini even de tijdzone op Europe/Amsterdam zetten.


[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam


[size=xsmall]Toevoeging op 28/04/2017 21:59:31:[/size]

en als dat niet gaat dan zul je aan het begin van je script dit moeten doen
<?php
date_default_timezone_set('Europe/Amsterdam');
?>

[size=xsmall]Toevoeging op 28/04/2017 22:02:35:[/size]

En uiteraard ook de webserver herstarten nadat je php.ini aangepast hebt
waar kan ik de php.ini file vinden?

[size=xsmall]Toevoeging op 28/04/2017 22:09:51:[/size]

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.
Kijk eens naar de waarde van
"Loaded Configuration File" in [php]phpinfo[/php]. 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.
Configuration File (php.ini) Path /opt/alt/php56/etc
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

[size=xsmall]Toevoeging op 28/04/2017 22:17:56:[/size]

Geen idee waar ik /opt/alt/php56 kan vinden
Om even te herhalen:
- 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.

Reageren