Страница 1 от 1

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 13 Авг 2020, 23:40
от gadinkata
Опитах се да направя скрипт,който да ми изкарва Текст в определено време,всичко вървеше добре,когато мина полунощ 00:00 и се оказа,че 00:00 е по малко от 20:00!Въпроса ми е как да направя условието когато мине 23:59 и стане 00:00?

Код за потвърждение: Избери целия код

<?php
date_default_timezone_set('Europe/Sofia');
$data = date('H:i');
$OneBanerStart = "05:00";
$OneBanerEnd = "09:00";
$TwoBanerStart = "09:00";
$TwoBanerEnd = "20:00";
$TreeBanerStart = "20:00";
$TreeBanerEnd = "05:00";
if($data >= $OneBanerStart && $data < $OneBanerEnd)
{
    echo 'Добро Утро,';
}else if($data >= $TwoBanerStart && $data < $TwoBanerEnd)
{
    echo 'Добър Ден,';
}else if($data >= $TreeBanerStart && $data < $TreeBanerEnd)
{
    echo 'Добър Вечер,';
}
?>

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 14 Авг 2020, 00:26
от JustyleR
Ами, нормално 20:00 да е по-голямо от 00:00. Все пак ти сравняваш числа.

Пробвай така:

Код за потвърждение: Избери целия код

$time = date('H:i');

switch($time) {
  case ($time >= '05:00' && $time <= '09:00'):
    echo "Добро утро!";
  break;
  case ($time > "09:00" && $time <= '20:00'):
    echo "Добър ден!";
  break;
  case ($time > '20:00' || $time < '05:00'):
    echo "Добър вечер!";
  break;
}

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 14 Авг 2020, 00:47
от gadinkata
благодаря стана,но да попитам защо само на някой места има >=<,а на някой е само > <

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 14 Авг 2020, 01:35
от JustyleR

Код за потвърждение: Избери целия код

$time = date('H:i');

switch($time) {
  // Ако $time е по-голямо или равно на 05:00 или по-малко или равно на 09:00
  case ($time >= '05:00' && $time <= '09:00'):
    echo "Добро утро!";
  break;
  // Ако $time е по-голямо (понеже на горната проверка имаме или равно, тук ще трябва да проверим само дали е по-голямо)
  case ($time > "09:00" && $time <= '20:00'):
    echo "Добър ден!";
  break;
  // По същият начин
  // На горната проверка проверяваме дали часът е по-малко или равно на 20:00, а тук ще проверим дали е само по-голямо от 20:00
  case ($time > '20:00' || $time < '05:00'):
    echo "Добър вечер!";
  break;
}
Надявам се, че си ме разбрал.

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 14 Авг 2020, 18:28
от gadinkata
JustyleR написа: 14 Авг 2020, 01:35

Код за потвърждение: Избери целия код

$time = date('H:i');

switch($time) {
  // Ако $time е по-голямо или равно на 05:00 или по-малко или равно на 09:00
  case ($time >= '05:00' && $time <= '09:00'):
    echo "Добро утро!";
  break;
  // Ако $time е по-голямо (понеже на горната проверка имаме или равно, тук ще трябва да проверим само дали е по-голямо)
  case ($time > "09:00" && $time <= '20:00'):
    echo "Добър ден!";
  break;
  // По същият начин
  // На горната проверка проверяваме дали часът е по-малко или равно на 20:00, а тук ще проверим дали е само по-голямо от 20:00
  case ($time > '20:00' || $time < '05:00'):
    echo "Добър вечер!";
  break;
}
Надявам се, че си ме разбрал.
Абе не точно но,3те кейса "проверки" не са ли отделни една от друга,при втората проверка където реалния час $time там реалния част ако мине 20:00 веднага ще направи 3тата проверка,следователно като стане 20:01 ще смени към 3-тата проверка,но $time взима реалния час в момента,след 00:00 като вземе 00:01 примерно пак ще е по малко от 20:00,но до колкото разбирам 3-тата проверка е реален час > 20:00 или ако реалния час е < от 5:00,тоест да изълни кода при едно от двете условия
И Break,защо се използва,според това което знам като бях в англия и ни даваха почивки казваха break(брейк 15 мин) :D

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 14 Авг 2020, 18:45
от JustyleR
Ами, 3-тата проверка както спомена се използва с или, защото ние вземаме часа, но ние го вземаме просто като цифра. Нямаме дата и година и затова правим проверка просто за едни числа. Вече ако имахме дата, година и т.н. Тогава вече щеше да е друго.

break се използва да прекрати кода по-надолу, тоест няма да продължи с другите проверки.
PHP Switch

Проверка часът с date() дали 00:00 е по-голям от 20:00

Публикувано на: 14 Авг 2020, 19:25
от gadinkata
Благодаря може да локване :)