✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Znajdź różnicę w datach za pomocą PHP (i WordPress)

22

Praca z datami w PHP to jedna z tych rzeczy, którymi albo dobrze sobie radzisz, pracujesz nad zrozumieniem, albo utknąłeś w króliczej dziurze dokumentacji zawartej w podręczniku.

Jeśli jednak pracujesz z WordPressem, szansa, że ​​będziesz musiał pracować z datami, jest dość wysoka. Niemal ze wszystkim, co publikujemy, jest powiązana przynajmniej jedna data.

Obejmuje to posty, strony, niestandardowe typy postów, poprawki, wersje robocze i tak dalej.

Co więcej, istnieje szansa, że ​​niestandardowa praca, z którą musisz się rozwijać, wymaga znalezienia różnicy w dwóch datach przy użyciu PHP. I chociaż istnieje wiele sposobów na zrobienie tego, istnieje proces, który śledzę po coś.

Różnica w datach przy użyciu PHP

Zanim przejdę przez mój przykład, warto podać trochę kontekstu. W końcu to, nad czym pracujesz, prawdopodobnie będzie trochę inne niż to, co robię.

Znajdź różnicę w datach za pomocą PHP (i WordPress)

Ogólna idea może nadal być taka sama, więc sedno tego, co robisz, można nadal ekstrapolować z poniższego kodu. Ale podam konkretny przykład z mojej własnej pracy:

  1. Mam niestandardowy typ wpisu reprezentujący wydarzenie i wydarzenie jako datę publikacji.
  2. Muszę wiedzieć, kiedy zaczyna się impreza. Aby to zrobić, definiuję format daty przy użyciu formatu n/j/Y, który jest obsługiwany przez PHP, a następnie konwertuję go na datę za pomocą funkcji daty w PHP .
  3. Następnie biorę dzisiejszą datę (jako łatwy sposób na określenie różnicy w datach przy użyciu PHP w tym przykładzie) i konwertuję ją na datę przy użyciu tej samej funkcji i formatu n/j/Y.
  4. Następnie tworzę wystąpienie dwóch obiektów DateTime i obliczam różnicę.

Jeśli to nie jest proste, polecam kliknąć powyższe linki. W przeciwnym razie oto kod.

<?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;
}

Zauważ, że w powyższym kodzie interesuje mnie tylko pobranie różnicy w latach. Możesz wybrać coś innego. Jeśli tak jest, API oferowane przez PHP ułatwia to, badając właściwości obiektu DateTime.

Ale biorąc pod uwagę dwie daty, jest to prosty sposób na znalezienie różnicy w datach przy użyciu PHP w kontekście WordPressa.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów