{"id":229458,"date":"2022-10-27T19:58:00","date_gmt":"2022-10-27T16:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229458"},"modified":"2022-11-09T07:09:52","modified_gmt":"2022-11-09T04:09:52","slug":"trova-la-differenza-nelle-date-usando-php-e-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/trova-la-differenza-nelle-date-usando-php-e-wordpress\/","title":{"rendered":"Trova la differenza nelle date usando PHP (e WordPress)"},"content":{"rendered":"<p>Lavorare con le date in PHP \u00e8 una di quelle cose su cui o hai una buona padronanza, stai lavorando per capire o sei bloccato nella tana del coniglio della documentazione che \u00e8 nel manuale.<\/p>\n<p>Se stai lavorando con WordPress, per\u00f2, la possibilit\u00e0 che tu abbia bisogno di lavorare con le date \u00e8 piuttosto alta. Quasi tutto ci\u00f2 che pubblichiamo ha almeno una data associata.<\/p>\n<p>Ci\u00f2 include post, pagine, tipi di post personalizzati, revisioni, bozze e cos\u00ec via.<\/p>\n<p>Inoltre, c&#8217;\u00e8 la possibilit\u00e0 che il lavoro personalizzato con cui devi sviluppare richieda di trovare la differenza in due date usando PHP. E sebbene ci siano molti modi per farlo, c&#8217;\u00e8 un processo che ho seguito per qualcosa.<\/p>\n<h2>La differenza nelle date usando PHP<\/h2>\n<p>Prima di esaminare il mio esempio, sar\u00e0 utile fornire un po&#8217; di contesto. Dopotutto, qualunque cosa tu stia lavorando sar\u00e0 probabilmente un po&#8217; diversa da quella che sto facendo io.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167514-61e7a4d3a7ab3.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167514-61e7a4d3a7ab3.png\" alt=\"Trova la differenza nelle date usando PHP (e WordPress)\" ><\/a><\/p>\n<p>L&#8217;idea generale potrebbe essere sempre la stessa, quindi l&#8217;essenza di ci\u00f2 che stai facendo pu\u00f2 ancora essere estrapolata dal codice seguente. Ma permettetemi di fare un esempio concreto tratto dal mio stesso lavoro:<\/p>\n<ol>\n<li>Ho un tipo di post personalizzato che rappresenta un evento e l&#8217;evento come data di pubblicazione.<\/li>\n<li>Devo sapere quando inizia l&#8217;evento. Per fare ci\u00f2, definisco il formato della data utilizzando il formato n\/j\/Y come supportato da PHP e quindi lo converto in una data utilizzando la funzione <a href=\"https:\/\/php.net\/manual\/en\/function.date.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">data<\/a> di PHP .<\/li>\n<li>Successivamente, prendo la data odierna (come un modo semplice per determinare la differenza di date utilizzando PHP per questo esempio) e la converto in una data utilizzando la stessa funzione e il formato n\/j\/Y.<\/li>\n<li>Successivamente, creo un&#8217;istanza di due oggetti <a href=\"https:\/\/php.net\/manual\/en\/class.datetime.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DateTime<\/a> e calcolo la differenza.<\/li>\n<\/ol>\n<p>Se ci\u00f2 non \u00e8 semplice, ti consiglio di fare clic sui collegamenti sopra. Altrimenti, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d72e8d0e5d66d5e905f771254c3ad566\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ecco il codice<\/a>.<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Determines the number of years that exist between the specified\n * event custom post type and today's date.\n *\n * @access private\n * @param  WP_Post $event A custom post type representing an event.\n * @return string  $years The difference in years.\n *\/\nprivate function get_difference_in_dates( $event) {\n\n  \/\/ If the post_date is empty, why are we here?\n  if (empty( $event['post_date']) {\n    return;\n  }\n\n  \/\/ Get the date for the start of the event and te \n  $start = date( 'n\/j\/Y', strtotime( $event['post_date']) );\n  $today = date( 'n\/j\/Y' );\n\n  \/\/ Get the date for the start of the event and today's date.\n  $start      = new DateTime( $start );\n  $end        = new DateTime( $today );\n\n  \/\/ Now find the difference in years.\n  $difference = $start-&gt;diff( $end );\n  $years      = $difference-&gt;y;\n\n  \/\/ If the difference is less than one, we'll return a string of \"&lt; 1\".\n  $years = (1 &gt; $years )? '&lt; 1': (string)$years;\n\n  return $years;\n}<\/code><\/pre>\n<p>Avviso nel codice sopra sono interessato solo a recuperare la differenza in anni. Puoi scegliere di scegliere qualcosa di diverso. In tal caso, l&#8217;API offerta da PHP semplifica l&#8217;operazione esaminando le propriet\u00e0 <a href=\"https:\/\/php.net\/manual\/en\/class.datetime.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dell&#8217;oggetto DateTime<\/a>.<\/p>\n<p>Ma date due date, questo \u00e8 un modo semplice per trovare la differenza di date usando PHP nel contesto di WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esistono diversi modi per trovare la differenza di date utilizzando PHP. Ecco il processo che seguo da tempo.<\/p>\n","protected":false},"author":1,"featured_media":167515,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,804,720,844,865],"tags":[1168],"class_list":["post-229458","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-php-6","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=229458"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229458\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/167515"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=229458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=229458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=229458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}