✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Знайдіть різницю в датах за допомогою PHP (і WordPress)

19

Робота з датами в PHP — одна з тих речей, з якими ви або добре впораєтеся, або працюєте над розумінням, або ви застрягли в кролячій норі документації, яка міститься в посібнику.

Однак якщо ви працюєте з WordPress, ймовірність того, що вам знадобиться працювати з датами, досить висока. Майже все, що ми публікуємо, має принаймні одну дату.

Це включає дописи, сторінки, спеціальні типи дописів, редакції, чернетки тощо.

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

Різниця в датах за допомогою PHP

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

Знайдіть різницю в датах за допомогою PHP (і WordPress)

Загальна ідея може залишатися тією самою, тому суть того, що ви робите, усе ще можна екстраполювати з наведеного нижче коду. Але наведу конкретний приклад із власної роботи:

  1. У мене є спеціальний тип публікації, що представляє подію та подію як дату публікації.
  2. Мені потрібно знати, коли починається подія. Для цього я визначаю формат дати за допомогою формату n/j/Y, який підтримує PHP, а потім перетворюю його на дату за допомогою функції дати PHP .
  3. Далі я беру сьогоднішню дату (як простий спосіб визначити різницю в датах за допомогою PHP для цього прикладу) і перетворюю її на дату за допомогою тієї ж функції та формату n/j/Y.
  4. Після цього я створюю два об’єкти DateTime і обчислюю різницю.

Якщо це не так просто, я рекомендую натиснути посилання вище. В іншому випадку ось код.

<?php

/**
 * Determines the number of years that exist between the specified
 * event custom post type and today's date.
 *
 * @access private
 * @param  WP_Post $event A custom post type representing an event.
 * @return string  $years The difference in years.
 */
private function get_difference_in_dates( $event) {

  // If the post_date is empty, why are we here?
  if (empty( $event['post_date']) {
    return;
  }

  // Get the date for the start of the event and te 
  $start = date( 'n/j/Y', strtotime( $event['post_date']) );
  $today = date( 'n/j/Y' );

  // Get the date for the start of the event and today's date.
  $start      = new DateTime( $start );
  $end        = new DateTime( $today );

  // Now find the difference in years.
  $difference = $start->diff( $end );
  $years      = $difference->y;

  // If the difference is less than one, we'll return a string of "< 1".
  $years = (1 > $years )? '< 1': (string)$years;

  return $years;
}

Зауважте, що в коді вище мене цікавить лише отримання різниці в роках. Ви можете вибрати щось інше. Якщо це так, API, запропонований PHP, полегшує це, досліджуючи властивості об’єкта DateTime.

Але враховуючи дві дати, це простий спосіб знайти різницю в датах за допомогою PHP у контексті WordPress.

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі