Софтуерно Инженерство
Loading...
+ Нов въпрос
ElenaSei avatar ElenaSei 11 Точки

Проблем с DateTime в NetBeans

Здравейте,

по някаква причина не мога да използвам класа DateTime. Дава ми ето тази грешка:

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 /Users/Valentin/NetBeansProjects/02SimpleCalculations/13.1000DaysAfterBirth:3

Някакви предположения как мога да го оправя?

Тагове:
0
PHP Basics
Thedi avatar Thedi 198 Точки
Best Answer

Здравей,

Пробвай да сложиш най отгоре в файла ти (Разбира се след <?php) следното нещо:
 

date_default_timezone_set('Europe/Sofia');

Това ще промени default timezone на PHP конфигурацията защото най вероятно нямаш настроена такава.
Ако все още ти дава грешка пробвай да решиш задачата със следният код:
 

<?php
$inputDate = readline();
$date = date_create_from_format('d-m-Y', $inputDate);
$date->modify("+999 days");
$out = $date->format('d-m-Y');
echo $out;


Като тук в метода date_creat_from_format трябва да му дадеш какъв формат ще е датата която ти въвеждат. В случая това ще работи с "15-1-2018"

 

Ако първият пример работи е хубаво да идеш в php.ini и да намериш редът който пише "date.timezone" и да го промениш на date.timezone = "Europe/Sofia" за да нямаш проблеми във бъдеще.

За да намериш къде се нимира php.ini файла можеш да използваш следния код:

<?php
echo php_ini_loaded_file();

Като го пуснеш ще ти даде пътя където е файлът.

0
15/01/2018 14:20:25
ElenaSei avatar ElenaSei 11 Точки

Thedi, благодаря много! date_default_timezone_set оправи проблема. Не мога да кажа същото за php.ini файла, но съм доволна, че все пак най-накрая се откри решение на проблема ми.

0
TeodorStefanovPld avatar TeodorStefanovPld 818 Точки

php.ini файла трябва да е в хамп папката където си инсталира хамп.Другия по лесен начин които се сещам да го намериш е като пуснеш хамп gui. нали имаш бутони в ляво там имаш един configure и от него директно може да си отвориш php,ini файла и да видиш директорията му и тн. да пипаш разни неща.И нещо друго което се сетих не е лошо ти и всички да си пуснете да виждате формата/пълното име на файла в  повечето оперативни системи това е скрито.

0
17/01/2018 11:04:34
ElenaSei avatar ElenaSei 11 Точки

Виждам формата на файловете и виждам, че имам php.ini.default и още няколко такива, но не и php.ini. Изчетох всички форуми, но очевидно не мога да се справя с този проблем, така че го зарязвам. crying Благодаря за желанието и за помощта все пак :)

0
Vesela_5 avatar Vesela_5 33 Точки

Струва ми се, че това няма нищо общо с NetBeans, а с настройките на часовата ти зона в компютъра. Защо не пробваш от настройките на дата и час в контролния панел да избереш опция "Set time zone automatically". Принципно в България сме на (UTC +2:00).

0
ElenaSei avatar ElenaSei 11 Точки

И аз това си помислих, но си е automatically. Интересното е, че изписвайки DateTime ми излиза PHPDoc not found.

0
Vesela_5 avatar Vesela_5 33 Точки

Може ли да копираш целия код, за да го тествам?

0
ElenaSei avatar ElenaSei 11 Точки

<?php

$inputDate = readline();
$d = new DateTime($inputDate);
$d->modify("+999 days");
$out = $d->format('d-m-Y');
echo $out;

0
TeodorStefanovPld avatar TeodorStefanovPld 818 Точки

не е форматирана времевата зона формата на времето и затова реве.сега аз програмирам на с# и непознавам особеностите на php толкова.но тук не е заредена библиотеката за време или поне не е оказан формата на времето и затова реве.

0
Vesela_5 avatar Vesela_5 33 Точки

Може ли да направиш скрийншот какво пише в този документ:

С:\xampp\php\scripts\date_class_exceptions.php

0