2014-10-21 5 views
-3

меня 7 записей в моей базе данных MySQL каждый corresponsing в день недели с 0-6Получение название День от дня недели

Теперь я мой PHP скрипт я хочу, чтобы отобразить вместо 0, «воскресенье» или вместо 1 хотелось бы показать «понедельник».

Есть ли какая-либо функция, которая принимает числовые дни недели и возвращает Имя дня недели?

+0

', если строка равна нулю, эхо Sunday' –

+0

Тогда я должен добавить 7 сослагательного наклонения это лучший способ, чтобы написать код? – user1592129

+0

В принципе, да. 'while ($ row = mysqli_fetch_array ($ query) {if ($ row ['date'] == 0) {echo" Sunday ";} ...}' тип вещи. Я уверен, что есть другие способы, например, с помощью 'case/switch'. –

ответ

2

Вы можете использовать функцию даты, с форматом l:

л (нижний регистр 'L')

Полное текстовое представление дня недели

http://php.net/manual/en/function.date.php

и используйте тот факт, что в воскресенье 0:

echo date('l', strtotime("Sunday +{$day_number} days")); 

Или как функция:

function getDayNameFromDayNumber($day_number) { 
    return date('l', strtotime("Sunday +{$day_number} days")); 
} 
0

Постройте массив с днями в нем. Затем вы можете вызвать день по индексу.

0 - 6 = воскресенье - суббота

$daynum = 0; // assuming that's what was returned from the database. 
$dow = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); 
echo $dow[$daynum]; // would echo Sunday 
0

Это требует перечисления. PHP не поддерживает перечисления в целом, но имеет библиотеку SPL для перечислений, это небезопасно для использования, поскольку сервер может не установить его.

другой способ заключается в использовании числового массива для дней недели:

$daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",]; 

Теперь вызов $daysOfWeek[$x%7]; возвращает строку на этот день (% 7 является уклонение от индексов диапазона).

0

Самый простой способ заключается в использовании массивов. И вы должны использовать цифры от 0 до 6 - это была хорошая идея.

$number_of_day = 6; //OR DIFFERNT - it depends what you need 
$day_array = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); 
$day_array[$number_of_day]; 

В переменной $ day_array [$ number_of_day]; у вас есть выходной час.

0

Вы можете написать помощника и передать ему дату. Он будет доступен во всех ваших взглядах везде, где вам это нужно: echo $this->MyHelper->changeNumToDate($num) Поскольку вы используете возврат, вам действительно не нужен перерыв, но его привычка со мной.

class MyHelper extends Helper { 
    function changeNumToDate($num = null){ 
     Switch($num){ 
      Case 0: 
       return 'Sunday'; 
       break; 
      Case 1: 
       return 'Monday'; 
       break; 
      Case 2: 
       return 'Tuesday'; 
       break; 
      Case 3: 
       return 'Wednesday'; 
       break; 
      Case 4: 
       return 'Thursday'; 
       break; 
      Case 5: 
       return 'Friday'; 
       break; 
      default: 
       return 'Saturday'; 

     } 
    } 
} 
0

Чтобы получить воскресенье в субботу или Sun в сб с числовыми дней недели 0 до 6:

//For example, our target numeric day is 0 (Sunday): 
$numericDay = 0; //assuming current date('w')==0 and date('D')=='Sun'; 

Solution-1: Использование PHP встроенный - в функции jddayofweek(), которая начинается с Monday, тогда как date('w') начинается с Sunday:

jddayofweek($numericDay-1, 1); //returns 'Sun', here decreasing by '-1' is important(!) 
//jddayofweek(0, 1); //returns 'Mon'; 
//jddayofweek(0, 2); //returns 'Monday'; 

Solution-2: Использование трюк:

date('D', strtotime("Sunday +{$numericDay} days")); //returns 'Sun'; 
//date('l', strtotime("Sunday +{$numericDay} days")); //returns 'Sunday';