✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hitta skillnaden i datum med PHP (och WordPress)

48

Att arbeta med datum i PHP är en av de saker som du antingen har bra koll på, du jobbar på att förstå eller så har du fastnat i kaninhålet i dokumentationen som finns i manualen.

Men om du arbetar med WordPress är chansen att du kommer att behöva arbeta med datum ganska stor. Nästan allt som vi publicerar har minst ett datum kopplat till sig.

Detta inkluderar inlägg, sidor, anpassade inläggstyper, revisioner, utkast och så vidare.

Dessutom finns det en chans att anpassat arbete som du behöver utveckla med kräver att du hittar skillnaden på två datum med PHP. Och även om det finns flera sätt att göra detta på, finns det en process som jag har följt för något.

Skillnaden i datum med PHP

Innan jag går igenom mitt exempel hjälper det att ge lite sammanhang. När allt kommer omkring, vad du än jobbar med kommer sannolikt att bli lite annorlunda än vad jag gör.

Hitta skillnaden i datum med PHP (och WordPress)

Den allmänna idén kan fortfarande vara densamma så kärnan i vad du gör kan fortfarande extrapoleras från koden nedan. Men låt mig ge ett konkret exempel från mitt eget arbete:

  1. Jag har en anpassad inläggstyp som representerar en händelse och händelsen som ett inläggsdatum.
  2. Jag behöver veta när evenemanget börjar. För att göra detta definierar jag datumformatet med n/j/Y-formatet som stöds av PHP och konverterar sedan detta till ett datum med PHP:s datumfunktion.
  3. Därefter tar jag dagens datum (som ett enkelt sätt att bestämma skillnaden i datum med PHP för detta exempel) och konverterar det till ett datum med samma funktion och n/j/Y-format.
  4. Efter det instansierar jag två DateTime- objekt och beräknar skillnaden.

Om det inte är okomplicerat rekommenderar jag att du klickar på länkarna ovan. Annars är här koden.

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

Observera i koden ovan att jag bara är intresserad av att hämta skillnaden i år. Du kan välja att välja något annat. Om så är fallet gör API:et som erbjuds av PHP det enkelt att göra det genom att undersöka egenskaperna för DateTime-objektet.

Men med tanke på två datum är detta ett enkelt sätt att hitta skillnaden i datum med PHP i WordPress-sammanhang.

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer