Робота з датою на php

Напишу скрипт безкоштовно

Сортування масивів по зростанню і зменшенням в PHP

  • Олег »А тут описано як можна відсортувати дані витягнуті з бази даних astranar.ru/php?id=2

Незалежно від того, який сайт ви створюєте, є ймовірність, що неабияку кількість написаного вами коду буде включати форматування і розрахунок дати і часу, тому що тимчасові дані відіграють важливу роль у багатьох сферах бізнесу і життя.







Робота з датою на php

Мова PHP вже давно надає потужні можливості для форматування і маніпулювання датою, що значно скорочує обсяг роботи, який розробник повинен зробити в цьому напрямку. У цій статті я познайомлю вас з деякими з найбільш часто використовуваних функцій для роботи з датою в PHP, і покажу кілька менш відомих прийомів.

Функція date () в PHP є настільки вражаючою, що багато підручників і часто використовують функцію для вступного прикладу, в якості способу познайомити користувача з простим, але потужним синтаксисом мови. Приголомшливе кількість параметрів цієї функції дозволяє форматувати дату і час практично будь-яким можливим чином (навіть Swatch Internet Time, якщо вам так хочеться). Наприклад, для відображення поточної дати у форматі, який не викличе плутанини з порядком проходження дати, залежать від конкретної країни, ви можете використовувати наступну послідовність параметрів F j, Y:

При виконанні фрагмента коду буде виведена наступна дата

Якщо ваші користувачі, знаходяться в Сполучених Штатах, то буде досить послідовності m-d-y:

Синтаксис форматування, показаний тут, це лише мала частина того, що може робити функція date (). Не забудьте перевірити документацію функції для уточнення всіх деталей.

Форматування тимчасової позначки

Функція date () приймає додатковий параметр, який містить тимчасову позначку. Тимчасова відмітка це просто уявлення певної дати і часу, і, хоча тимчасові позначки можуть бути представлені за допомогою різних форматів, функція date () очікує, що дата повинна бути задана у вигляді послідовності цілих чисел, що визначають кількість секунд, що пройшли з моменту початку епохи Unix .







Це звичайна практика для використання подібних тимчасових відміток, і тому, якщо у вас є під рукою дата, можна використовувати функцію date (), щоб перетворити її в більш зручний для користувачів формат. наприклад:

При виконанні даного фрагмента коду виходить наступний результат:

Звичайно, не всі користувачі будуть носіями англійської мови. Таким чином, ви могли б розглянути вітання користувачів в більш знайомому для їх мови форматі, який можна легко задати за допомогою PHP функцій setlocale () і strftime ().

Наприклад, якщо конкретний користувач визначив себе як громадянин Франції, ви могли б локалізувати специфічний синтаксис PHP з використанням локалі fr_FR, а потім відформатувати дату, використовуючи деякі параметри функції strftime ():

При виконанні даного фрагмента коду виходить наступний результат:

Залежно від того, як налаштований ваш сервер, він може не підтримувати всі доступні локалі. Найпростіший спосіб визначити, чи підтримується мову, це перевірити повертається значення функції setlocale (). Якщо функція повертає FALSE, мова не підтримується:

Конфігурація часового поясу

Веб-сервери часто знаходяться в різних часових поясах з обслуговується бізнесом. Наприклад, мої консультації і видавничий бізнес знаходяться в місті Колумбус, штат Огайо (Eastern Standard Time), а веб-сайт розміщений на сервері, розташованому в південній Каліфорнії. Оскільки PHP за замовчуванням буде повідомляти час і дату в залежності від конфігурації часового поясу сервера, і ви перебуваєте в ситуації, подібній моєї, то ви повинні налаштувати часовий пояс відповідним чином.

Якщо ви хочете, щоб все PHP-сценарії, що знаходяться на сервері, використовували певний часовий пояс, відкрийте файл php.ini і знайдіть директиву date.timezone. Ви можете встановити цю директиву в будь-який з підтримуваних PHP часових поясів. Наприклад, щоб встановити Східної часовий пояс, я міг би використовувати настройку America / New_York:

Якщо необхідно, щоб тільки окремий сценарій PHP використовував конкретний часовий пояс, то можете використовувати функцію date_default_timezone_set () на початку вашого сценарію:

Якщо вказати в конфігураційний файл сайту вище згадану функцію (date_default_timezone_set)

можна ізмежать такі помилки як:

Warning: date (). 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.

Додавання 45 днів до дати

Через різної кількості днів у кожному місяці, в поєднанні з додатковою складністю визначення високосного року, розрахувати термін закінчення можливості завантаження може бути складним завданням. Використання класу DateTime робить такий розрахунок дуже простим:

Виконання сценарію дає наступний результат:

Синтаксис формату DateInterval виглядає дивно на перший погляд; P означає період. Потім можна використовувати інші позначення періоду, які представляють собою набагато більше, ніж просто кілька днів. Наприклад, щоб визначити, що пройшло 2 роки і 47 днів після зазначеної дати, можна використовувати формат P2Y47D. Дивіться документацію по DateInterval для більш докладної інформації.

Обчислення кількості днів між двома датами

Виконання сценарію дає наступний результат:

2,233 days have passed since OSU's last loss to Michigan!







Схожі статті