+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Datum und Timezone Probleme unter PHP

  1. #1
    Neu an Board
    Registriert seit
    19.05.2016
    Beiträge
    43
    Bedankte sich
    0
    Erhielt 10 Danksagungen
    in 9 Beiträgen

    Standard Datum und Timezone Probleme unter PHP

    Moin zusammen,

    ich nutze EasySocial und will dort das Alter der jeweiligen User anzeigen. Folgenden Code habe ich:

    PHP-Code:
    <?php

    $id 
    JRequest::getInt'id' null ); 

    $user Foundry::user($id); 

    $birthdayDate $user->getFieldValue('BIRTHDAY'); 

    $birthDate = new DateTime($birthdayDate); 
    $now = new DateTime(); 

    $age floor(($now->format('U') - $birthDate->format('U')) / (60*60*24*365)); 

    echo 
    "($age)"

    ?>
    Ich erhalte jedoch folgende Fehlermeldung:

    0 DateTime::_construct(): Failed to parse time string (01 Januar 1964) at position 6 (u): The timezone could not be found in the database.
    Das Problem ist also, dass Monate in deutsch abgespeichert wurden, nun jedoch in englisch abgerufen werden. Hat jemand einen Tipp wie ich das nun hinbekomme?

  2. #2
    Gehört zum Inventar
    Registriert seit
    06.03.2013
    Ort
    /dev/random
    Beiträge
    5.615
    Bedankte sich
    123
    Erhielt 2.102 Danksagungen
    in 1.991 Beiträgen

    Standard

    Etwa so, aber nicht getestet.
    PHP-Code:
    <?php
    $id 
    JRequest::getInt'id' null ); 
    $user Foundry::user($id); 
    $birthdayDate $user->getFieldValue('BIRTHDAY');  
    $d_array=explode(" "$birthdayDate);
    $day=$d_array[0];
    $month=$d_array[1];
    $year=$d_array[2];
    $array = array(=> 'januar'=> 'februar'=> 'märz'=> 'april'=> 'mai'=> 'juni'=> 'juli'=> 'august'=> 'september'10 => 'oktober'11 => 'november'=> 'dezember');
    $montharray_search(strtolower($mounth),$array);
    $birthdayDate=$year.'-'.$month.'-'.$day;
    $date = new DateTime($bithdayDate);
    $now = new DateTime();
    $interval $now->diff($date);
    $age=$interval->y;
    echo 
    '('.$age.')';
    Edit: Jetzt getestet ab Zeile $d_array=explode(" ", $birthdayDate);
    Geändert von FINWICK (25.03.2017 um 07:33 Uhr)
    Gruß FINWICK
    ↶ Danke Button nutzen, wenn es geholfen hat - Kein Support via PN - Tipps & Tricks - JPlugger

  3. #3
    Neu an Board
    Registriert seit
    19.05.2016
    Beiträge
    43
    Bedankte sich
    0
    Erhielt 10 Danksagungen
    in 9 Beiträgen

    Standard

    Vielen Dank erst mal für die Antwort, leider bekomme ich da so (0) bei raus...

  4. #4
    Gehört zum Inventar
    Registriert seit
    06.03.2013
    Ort
    /dev/random
    Beiträge
    5.615
    Bedankte sich
    123
    Erhielt 2.102 Danksagungen
    in 1.991 Beiträgen

    Standard

    Ich habs oben noch mal modifiziert und getestet.
    Gruß FINWICK
    ↶ Danke Button nutzen, wenn es geholfen hat - Kein Support via PN - Tipps & Tricks - JPlugger

  5. #5
    Neu an Board
    Registriert seit
    19.05.2016
    Beiträge
    43
    Bedankte sich
    0
    Erhielt 10 Danksagungen
    in 9 Beiträgen

    Standard

    Vielen Dank,
    ich muss gestehen ich bin totale Anfängerin auf diesem Gebiet und versuche mir das alles irgendwie zusammen zu suchen und zu erklären.
    Leider kommt da bei mir immer noch null raus.
    Vielleicht ist es wichtig: wenn ich $user->getFieldValue('BIRTHDAY') ausgeben lasse, wird das Datum auf deutsch angezeigt. Es wird im Format dd mmmm yyyy angezeigt (ohne Punkte dazwischen) mit deutschen Monatsnamen.
    Nur die DateTime() Funktion (genauso die now() Funktion) erscheint ein englisches Datum zu erwarten, kann das sein?
    Vielleicht habe ich mir da ein Projekt rausgepickt, das eine Nummer zu hoch für mich ist

  6. #6
    Gehört zum Inventar
    Registriert seit
    17.09.2008
    Ort
    München
    Beiträge
    7.812
    Bedankte sich
    758
    Erhielt 2.533 Danksagungen
    in 2.200 Beiträgen

    Standard

    ... überlesen ...
    Geändert von firstlady (26.03.2017 um 13:29 Uhr)

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein