{"id":229236,"date":"2022-10-27T19:53:00","date_gmt":"2022-10-27T16:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229236"},"modified":"2022-11-09T06:06:03","modified_gmt":"2022-11-09T03:06:03","slug":"etsi-paeivaemaeaerien-ero-php-n-ja-wordpressin-avulla","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/etsi-paeivaemaeaerien-ero-php-n-ja-wordpressin-avulla\/","title":{"rendered":"Etsi p\u00e4iv\u00e4m\u00e4\u00e4rien ero PHP:n (ja WordPressin) avulla"},"content":{"rendered":"\n<p>P\u00e4iv\u00e4m\u00e4\u00e4rien k\u00e4ytt\u00e4minen PHP:ss\u00e4 on yksi niist\u00e4 asioista, jotka joko hallitset hyvin, yrit\u00e4t ymm\u00e4rt\u00e4\u00e4 tai olet jumissa k\u00e4sikirjassa olevan dokumentaation kaninkuolassa.<\/p>\n<p>Jos kuitenkin ty\u00f6skentelet WordPressin kanssa, todenn\u00e4k\u00f6isyys, ett\u00e4 joudut ty\u00f6skentelem\u00e4\u00e4n p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n kanssa, on melko suuri. L\u00e4hes kaikkeen, mit\u00e4 julkaisemme, liittyy v\u00e4hint\u00e4\u00e4n yksi p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4.<\/p>\n<p>T\u00e4m\u00e4 sis\u00e4lt\u00e4\u00e4 viestit, sivut, mukautetut viestityypit, versiot, luonnokset ja niin edelleen.<\/p>\n<p>Lis\u00e4ksi on mahdollista, ett\u00e4 mukautetut ty\u00f6t, joita sinun on kehitett\u00e4v\u00e4, edellytt\u00e4v\u00e4t, ett\u00e4 l\u00f6yd\u00e4t eron kahdessa p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4ss\u00e4 PHP:n avulla. Ja vaikka on olemassa useita tapoja tehd\u00e4 t\u00e4m\u00e4, olen seurannut jotakin prosessia.<\/p>\n<h2>Ero p\u00e4iv\u00e4m\u00e4\u00e4riss\u00e4 PHP:n avulla<\/h2>\n<p>Ennen kuin k\u00e4yn esimerkki\u00e4ni l\u00e4pi, se auttaa antamaan hieman kontekstia. Loppujen lopuksi se, mink\u00e4 parissa ty\u00f6skentelet, on todenn\u00e4k\u00f6isesti hieman erilainen kuin se, mit\u00e4 teen.<\/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=\"Etsi p\u00e4iv\u00e4m\u00e4\u00e4rien ero PHP:n (ja WordPressin) avulla\" ><\/a><\/p>\n<p>Yleinen idea saattaa silti olla sama, joten tekem\u00e4si sis\u00e4lt\u00f6 voidaan silti ekstrapoloida alla olevasta koodista. Annan kuitenkin konkreettisen esimerkin omasta ty\u00f6st\u00e4ni:<\/p>\n<ol>\n<li>Minulla on mukautettu viestityyppi, joka edustaa tapahtumaa ja tapahtumaa julkaisup\u00e4iv\u00e4n\u00e4.<\/li>\n<li>Minun t\u00e4ytyy tiet\u00e4\u00e4, milloin tapahtuma alkaa. T\u00e4t\u00e4 varten m\u00e4\u00e4rit\u00e4n p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4muodon k\u00e4ytt\u00e4m\u00e4ll\u00e4 PHP:n tukemaa n\/j\/Y-muotoa ja muunnan sen sitten p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4ksi PHP:n <a href=\"https:\/\/php.net\/manual\/en\/function.date.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4funktiolla<\/a>.<\/li>\n<li>Seuraavaksi otan t\u00e4m\u00e4n p\u00e4iv\u00e4n p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n (helppona tapana m\u00e4\u00e4ritt\u00e4\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4rien erot k\u00e4ytt\u00e4m\u00e4ll\u00e4 PHP:t\u00e4 t\u00e4ss\u00e4 esimerkiss\u00e4) ja muunnan sen p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4ksi k\u00e4ytt\u00e4m\u00e4ll\u00e4 samaa funktiota ja n\/j\/Y-muotoa.<\/li>\n<li>T\u00e4m\u00e4n j\u00e4lkeen instantoin kaksi <a href=\"https:\/\/php.net\/manual\/en\/class.datetime.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DateTime<\/a> -objektia ja lasken eron.<\/li>\n<\/ol>\n<p>Jos t\u00e4m\u00e4 ei ole suoraviivaista, suosittelen napsauttamaan yll\u00e4 olevia linkkej\u00e4. Muuten <a href=\"https:\/\/gist.github.com\/tommcfarlin\/d72e8d0e5d66d5e905f771254c3ad566\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">koodi on t\u00e4ss\u00e4<\/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>Huomaa yll\u00e4 olevassa koodissa, ett\u00e4 olen kiinnostunut vain hakemaan eron vuosissa. Voit valita jotain muuta. Jos n\u00e4in on, PHP:n tarjoama API tekee sen helpoksi tutkimalla <a href=\"https:\/\/php.net\/manual\/en\/class.datetime.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DateTime-objektin<\/a> ominaisuuksia .<\/p>\n<p>Mutta kun otetaan huomioon kaksi p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4\u00e4, t\u00e4m\u00e4 on suoraviivainen tapa l\u00f6yt\u00e4\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4rien ero k\u00e4ytt\u00e4m\u00e4ll\u00e4 PHP:t\u00e4 WordPressin yhteydess\u00e4.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>On useita tapoja l\u00f6yt\u00e4\u00e4 ero p\u00e4iv\u00e4m\u00e4\u00e4riss\u00e4 PHP:n avulla. T\u00e4ss\u00e4 on prosessi, jota olen seurannut jonkin aikaa.<\/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":[719,895,917,843,803,864],"tags":[1166],"class_list":["post-229236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-muut","category-opetusohjelmia","category-php-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=229236"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229236\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/167515"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=229236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=229236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=229236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}