Verwenden der function ‘strtotime’ zum Konvertieren einer benutzerdefinierten Metabox in einen Datumsstempel

Ich baue einen “Podcast” -Post-Typ in einem WordPress-Build mit benutzerdefinierten Post-Typen, Meta-Boxen und Taxonomien. Es kann einen einfacheren Weg geben, dies zu tun. Ich lerne immer noch und das ist mein erster Versuch. Wie auch immer, ich bin fast fertig, aber ich möchte einige functionen hinzufügen, die meinem Client helfen (einfacher zu bedienen).

Eine der benutzerdefinierten Meta-Boxen, die ich habe, ist “date” – der Grund dafür ist, dass das Upload-Datum für den Podcast (dh das_Datum) oft unterschiedlich zu dem Tag ist, an dem der Podcast aufgezeichnet wurde (Meta-Box-_Datum).

Ich weiß ein wenig über die StrTotime-function in PHP – und ich würde es lieben, dies zu verwenden, um einige Dateneingabe in das Feld “Datum” in neuen Podcasts zu verarbeiten. Im Moment ist es nur Text, also wenn der Benutzer “23. Januar 2012” oder “23. Januar 2012” oder “1-23-12” usw. eingibt – bin ich mit diesem Text für Anzeigezwecke festgefahren. Mit der function strtotime denke ich jedoch, dass ich die Benutzereingabe in einen Datumsstempel umwandeln könnte, den ich um die Seite herum anzeigen könnte, wie ich möchte (m, d, y).

Ich bin mir nicht sicher, wo ich genau anfangen soll – ich bin bei php SEHR neu. Ich werde den entsprechenden Code unten einfügen. Jede Hilfe, die Sie zur Verfügung stellen könnten, wäre sehr willkommen!

Vielen Dank!

Tim

// Podcast Meta Box function podcast_info() { global $post; // Noncename needed to verify where the data originated echo ''; // Get the data if its already been entered $week = get_post_meta($post->ID, '_week', true); $date = get_post_meta($post->ID, '_date', true); $description = get_post_meta($post->ID, '_description', true); // Echo out the field echo 'Week
What week of the series is this podcast? (enter the ‘Week X’ OR ‘Guest Speaker’)'; echo ''; echo 'Date
Enter the Date the podcast was recorded (Format as: ‘mm/dd/yy’)'; echo ''; echo 'Description
Enter the text you\'d like to display as a description on the media archives list.'; echo ''; } // Save the Podcast Meta box Data function save_podcast_meta($post_id, $post) { // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( !wp_verify_nonce( $_POST['podcastmeta_noncename'], plugin_basename(__FILE__) )) { return $post->ID; } // Is the user allowed to edit the post or page? if ( !current_user_can( 'edit_post', $post->ID )) return $post->ID; // OK, we're authenticated: we need to find and save the data // We'll put it into an array to make it easier to loop though. $podcast_meta['_week'] = $_POST['_week']; $podcast_meta['_date'] = $_POST['_date']; $podcast_meta['_thumbnail'] = $_POST['_thumbnail']; $podcast_meta['_seriesimg'] = $_POST['_seriesimg']; $podcast_meta['_description'] = $_POST['_description']; // Convert _date to actual date stamp foreach ($podcast_meta as $key => $value) { if(get_post_meta($post->ID, '_date', true)) strtotime('_date'); } // Add values of $podcast_meta as custom fields foreach ($podcast_meta as $key => $value) { // Cycle through the $podcast_meta array! if( $post->post_type == 'revision' ) return; // Don't store custom data twice $value = implode(',', (array)$value); // If $value is an array, make it a CSV (unlikely) if(get_post_meta($post->ID, $key, FALSE)) { // If the custom field already has a value update_post_meta($post->ID, $key, $value); } else { // If the custom field doesn't have a value add_post_meta($post->ID, $key, $value); } if(!$value) delete_post_meta($post->ID, $key); // Delete if blank } } add_action('save_post', 'save_podcast_meta', 1, 2); // save the custom fields

BEARBEITEN – Jetzt arbeiten – Siehe Code unten

  ID, '_date', true);?>    

Solutions Collecting From Web of "Verwenden der function ‘strtotime’ zum Konvertieren einer benutzerdefinierten Metabox in einen Datumsstempel"

Sie sollten das Datum in einem eindeutigen Format speichern, damit Sie vorhersagbare Ergebnisse erhalten. Das von Ihnen bevorzugte Format kann nicht mit strtotime analysiert werden, da nicht klar ist, welcher Monat, Tag und Jahr gemeint ist. Wenn Sie das Datum konvertieren, an dem die Metadaten gespeichert werden, ändert sich der Inhalt des Felds in dieses Format und bei der zweiten Speicherung wird ein Nicht-Speichern möglich. Es ist besser, es in einem übersichtlichen Format zu speichern und es bei der Ausgabe in Ihre Vorlage zu konvertieren.

Sie können Dinge für Ihren Client vereinfachen und sicherstellen, dass das Format immer analysierbar ist, indem Sie dem Metafeld, das ein bestimmtes Format erzwingt, eine Datumsauswahl hinzufügen. Dieses Skript macht es sehr einfach. Dann in deiner Vorlage:

 $your_meta_field_contents = 'January 23 2012'; $time = strtotime( $your_meta_field_contents ); echo date( 'md y', $time );