Datum- / Zeitformat Quartal
Eingetragen von notanerd (20)
am 21.04.2011 - 14:04 Uhr in
am 21.04.2011 - 14:04 Uhr in
Liebe Community,
ich bin auf der Suche nach einer Möglichkeit das Datum- / Zeitformat als Quartal anzeigen zu lassen.
Als Beispiel: 3. Quartal 2011
Gibt es dafür eine Möglichkeit?
Ich habe bereits das Modul "date" installiert, dort allerdings nicht die Möglichkeit für eine Quartalsanzeige.
Liebe Grüße,
notAnerd
- Anmelden oder Registrieren um Kommentare zu schreiben
Ausgabe
am 21.04.2011 - 18:08 Uhr
Ein eigenes Format für das Quartal gibt es nicht (siehe http://php.net/manual/de/function.date.php).
Ich würde aus dem Datum den Monat filtern (m) und bei der Ausgabe den Monat in ein Quartal umrechnen. Irgendwas in der Art
<?php ceil(date("m", $timestamp) / 3); ?>
Eigenes Format wo eingeben
am 25.04.2011 - 14:01 Uhr
Ich würde aus dem Datum den Monat filtern (m) und bei der Ausgabe den Monat in ein Quartal umrechnen. Irgendwas in der Art
<?php ceil(date("m", $timestamp) / 3); ?>
Wo müsste ich dann den PHP Code eintragen?
Template
am 25.04.2011 - 15:23 Uhr
Im Template; eben da, wo du das Quartal ausgeben willst. Zum Beispiel in node-termine.tpl.php (falls du einen Inhaltstypen hättest, der termine heißt). Musst dich also ein bisschen mit dem Template-System beschäftigen.
Danke für die schnelle
am 25.04.2011 - 15:33 Uhr
Danke für die schnelle Antwort, ich habe bereits im node.tpl.php herumgespielt und bekomme jetzt das Quartal angezeigt. Die perfekte Lösung ist es aber noch nicht ganz.
Mein Problem ist, dass ich ein Filmstart als Datum angeben möchte und manchmal weiß man schon das genaue Startdatum und manchmal eben nur das vom Quartal. Wie könnte ich es so regeln das er das Datum in ein Quartal umrechnet wenn nicht das Startdatum bekannt ist?
Datum
am 25.04.2011 - 17:53 Uhr
Hallo.
Wie könnte ich es so regeln das er das Datum in ein Quartal umrechnet wenn nicht das Startdatum bekannt ist?
Du fügst Deinem Inhaltstypen einfach noch ein weiteres Feld (Integer, checkbox) hinzu: "exaktes Erscheinungsdatum". Im Template (besser in der dazugehörigen preprocess-Funktion) gibst Du dann das Datum je nach Wert der Checkbox so wie eingetragen, bzw. als Quartal aus.
In etwa so (ungetestet):
<?php
function MEINTHEME_preprocess_node(&$vars) {
// Mal angenommen, der Wert steht da nicht als Timestamp drin.
$timestamp = strtotime($vars['node']['field_startdate']['#value']);
$vars['start_date'] = $vars['node']['field_startdate']['#value'];
if (isset($vars['node']['field_exact_date']['#value']) && $vars['node']['field_exact_date']['#value']) {
$vars['start_date'] = t('!quarter Quarter !year', array(
'!quarter' => ceil(date('m', $timestamp) / 3),
'!year' => date('y', $timestamp),
));
}
}
?>
Je nachdem, ob in
$vars['node']['field_startdate']['#value']
(wobei das jetzt nicht die korrekte Form sein muss) direkt das Datum oder ein Timestamp steht, ändert sich obiger Code etwas.Zum Herausfinden, wie die Struktur von
$vars['node']
wirklich aussieht, eignet sich die Funktiondsm()
des Moduls [do:devel Devel] sehr gut.Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hallo stBorchert, schon mal
am 25.04.2011 - 19:52 Uhr
Hallo stBorchert,
schon mal vielen Dank für deine ausführliche Antwort :-)
Was genau meinst du mit der preprocess-Funktion?
Hallo.
Du fügst Deinem Inhaltstypen einfach noch ein weiteres Feld (Integer, checkbox) hinzu: "exaktes Erscheinungsdatum". Im Template (besser in der dazugehörigen preprocess-Funktion) gibst Du dann das Datum je nach Wert der Checkbox so wie eingetragen, bzw. als Quartal aus.
Liebe Grüße,
notAnerd
preprocess
am 26.04.2011 - 06:40 Uhr
Was genau meinst du mit der preprocess-Funktion?
Eine kurze Abfrage bei Google nach "Drupal preprocess" führt einen direkt zu Setting up variables for use in a template (preprocess and process functions) ...
Wie der Name schon vermuten lässt, sind preprocess-Funktionen Funktionen, die vor der Ausführung (in diesem Fall (vereinfacht gesagt) vor dem Umwandel von Daten in HTML) ablaufen.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.