Loading...
kosyo.85 avatar kosyo.85 10 Точки

[PHP BASICS] Problem Dates!

Колеги, може ли някой да помогне? Програмата ми чете грешно датата. Като вход е дадена 01/07/2016, а я  чете 07/01/2016. Ето кода:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Dates</title>
</head>
<body>
<form>
    Start Date:
    <br>
    <input type="text" name="date">

    <br>
    Output Format:
    <br>
    <input type="text" name="format">
    <br>
    Commands:
    <br>
    <textarea name="commands"></textarea>
    <br>
    <input type="submit">
</form>
<?php
if (isset($_GET['date']) && isset($_GET['format']) && isset($_GET['commands'])) {
    date_default_timezone_get('Europe/Sofia');
    $format = $_GET['format'];
    $date = $_GET['date'];
    $commands = $_GET['commands'];
    $commands = explode(" ", $commands);
    $commands = array_filter(array_map('trim', $commands));
    $action = $commands[0];
    $days = intval($commands[1]);
    if ($action === 'add'){
        echo $dateNew= date("$format", strtotime("+$days day", strtotime($date)));
    }
    else {
        echo $dateNew= date("$format", strtotime("-$days day", strtotime($date)));
    }
}
?>
</body>
</html>
Тагове:
fpfilipov94 avatar fpfilipov94 7 Точки

Най-добре използвай "DateTime::createFromFormat" и сам задай входния формат, посочен в задачата. Така няма нужда да се занимаваш със смяна на времевата зона и е сигурно, че ще го чете както трябва. Ако не се лъжа, правилния формат за входа в задачата беше "d/m/Y". Ще ти е по-лесно и да използваш "DateTime::add" и "DateTime::sub" за операциите с дните.

0
Filkolev avatar Filkolev 4482 Точки

Съгласен съм като цяло, но един коментар - доколкото помня сетването на времевата зона е задължително, когато се работи с дати. В противен случай се хвърлят грешки.

0
kosyo.85 avatar kosyo.85 10 Точки

Благодаря!

0
04/07/2016 17:49:30
kosyo.85 avatar kosyo.85 10 Точки

Проблема остава! Благодаря все пак!

0
fpfilipov94 avatar fpfilipov94 7 Точки

Ако искаш си помогни от моето решение. В Judge-а минава всички тестове:

http://pastebin.com/QvacTzWK

0
kosyo.85 avatar kosyo.85 10 Точки

Благодаря много колега! Един малък детайл голям проблем ми създаде! За съжаление все още не мога да давам точки.

 

 

 

 

0
inktech.n.kikov avatar inktech.n.kikov 42 Точки

Здравейте,надявам се да не е проблем че ще си позволя да пиша в темата на колегата.Въпросът ми е как е по-правилното - да напишем първо html-a и след него php-то или обратното.В лекцията беше споменато че трябва първо да се пише php-то и след него да не html-a.Аз намирам за по-удобно първият вариант,и кода написан по този начин работи,ще се радвам да споделите и вие.Мерси

0
RoYaL avatar RoYaL Trainer 6849 Точки

Добрата практика по принцип е да не са на едно място. Що се отнася до джъдж вероятно няма значение.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.