✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Etsi päivämäärien ero PHP:n (ja WordPressin) avulla

15

Päivämäärien käyttäminen PHP:ssä on yksi niistä asioista, jotka joko hallitset hyvin, yrität ymmärtää tai olet jumissa käsikirjassa olevan dokumentaation kaninkuolassa.

Jos kuitenkin työskentelet WordPressin kanssa, todennäköisyys, että joudut työskentelemään päivämäärän kanssa, on melko suuri. Lähes kaikkeen, mitä julkaisemme, liittyy vähintään yksi päivämäärä.

Tämä sisältää viestit, sivut, mukautetut viestityypit, versiot, luonnokset ja niin edelleen.

Lisäksi on mahdollista, että mukautetut työt, joita sinun on kehitettävä, edellyttävät, että löydät eron kahdessa päivämäärässä PHP:n avulla. Ja vaikka on olemassa useita tapoja tehdä tämä, olen seurannut jotakin prosessia.

Ero päivämäärissä PHP:n avulla

Ennen kuin käyn esimerkkiäni läpi, se auttaa antamaan hieman kontekstia. Loppujen lopuksi se, minkä parissa työskentelet, on todennäköisesti hieman erilainen kuin se, mitä teen.

Etsi päivämäärien ero PHP:n (ja WordPressin) avulla

Yleinen idea saattaa silti olla sama, joten tekemäsi sisältö voidaan silti ekstrapoloida alla olevasta koodista. Annan kuitenkin konkreettisen esimerkin omasta työstäni:

  1. Minulla on mukautettu viestityyppi, joka edustaa tapahtumaa ja tapahtumaa julkaisupäivänä.
  2. Minun täytyy tietää, milloin tapahtuma alkaa. Tätä varten määritän päivämäärämuodon käyttämällä PHP:n tukemaa n/j/Y-muotoa ja muunnan sen sitten päivämääräksi PHP:n päivämääräfunktiolla.
  3. Seuraavaksi otan tämän päivän päivämäärän (helppona tapana määrittää päivämäärien erot käyttämällä PHP:tä tässä esimerkissä) ja muunnan sen päivämääräksi käyttämällä samaa funktiota ja n/j/Y-muotoa.
  4. Tämän jälkeen instantoin kaksi DateTime -objektia ja lasken eron.

Jos tämä ei ole suoraviivaista, suosittelen napsauttamaan yllä olevia linkkejä. Muuten koodi on tässä.

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

Huomaa yllä olevassa koodissa, että olen kiinnostunut vain hakemaan eron vuosissa. Voit valita jotain muuta. Jos näin on, PHP:n tarjoama API tekee sen helpoksi tutkimalla DateTime-objektin ominaisuuksia .

Mutta kun otetaan huomioon kaksi päivämäärää, tämä on suoraviivainen tapa löytää päivämäärien ero käyttämällä PHP:tä WordPressin yhteydessä.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja