Announcement

Collapse
No announcement yet.

Aktuelles Datum und Uhrzeit

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Aktuelles Datum und Uhrzeit

    Hallo

    Vielleich hat jemand von euch eine Idee oder Hinweis.

    Ich würde das aktuelle Datum und Uhrzeit in Variablenform benötigen

    XSLT1.0 + exslt ist vorhanden.


    Danke in voraus.

  • #2
    EXSLT hat http://www.exslt.org/date/functions/...ime/index.html, also
    Code:
    <xsl:variable name="now" select="date:date-time()" xmlns:date="http://exslt.org/dates-and-times"/>

    Comment


    • #3
      Nach einer Woche Spitalaufenthalt, zurück an den PC

      Leider klappt es nicht (PHP)

      Code:
      <xsl:stylesheet 
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
        xmlns:date="http://exslt.org/dates-and-times"
        xmlns:exsl="http://exslt.org/common"
        extension-element-prefixes="date exsl">
      
      <xsl:template match="/">
      
        <xsl:variable name="now" select="date:date-time()"/>
        <xsl:value-of select="$now"/>
        
      </xsl:template>
      </xsl:stylesheet>

      Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: xmlXPathCompOpEval: function date-time not found in D:\XAMPP_173\xampp\htdocs\haiku_gen_08\hcp_main\in dex.php on line 347

      Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: Unregistered function in D:\XAMPP_173\xampp\htdocs\haiku_gen_08\hcp_main\in dex.php on line 347

      Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: xmlXPathCompiledEval: evaluation failed in D:\XAMPP_173\xampp\htdocs\haiku_gen_08\hcp_main\in dex.php on line 347

      Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: runtime error: file file:///D:/XAMPP_173/xampp/htdocs/haiku_gen_08/hcp_main/ line 9 element variable in D:\XAMPP_173\xampp\htdocs\haiku_gen_08\hcp_main\in dex.php on line 347

      Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: Failed to evaluate the expression of variable 'now'. in D:\XAMPP_173\xampp\htdocs\haiku_gen_08\hcp_main\in dex.php on line 347


      Eine Idee?

      Comment


      • #4
        Da muss mal jemand helfen, der sich mit libxslt unter PHP auskennt, wenn ich unter Windows mit xsltproc.exe sheet.xsl input.xml ausführe, wobeit sheet.xsl
        Code:
        <xsl:stylesheet 
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
          xmlns:date="http://exslt.org/dates-and-times"
          exclude-result-prefixes="date">
        
        <xsl:template match="/">
        
          <xsl:variable name="now" select="date:date-time()"/>
          <xsl:value-of select="$now"/>
          
        </xsl:template>
        </xsl:stylesheet>
        ist, erhalte ich keinen Fehler, sondern eine Ausgabe wie
        Code:
        <?xml version="1.0"?>
        2012-04-21T11:29:51+02:00
        Eventuell muss man libxslt unter PHP anders konfigurieren, damit man alle verfügbaren EXSLT-Funktionen nutzen kann, aber damit kenne ich mich nicht aus.

        Comment


        • #5
          Ich hatte noch einiges probiert. Klappt leider auch nicht. Trotzden Danke für die Hilfe.

          Comment


          • #6
            Originally posted by mr_sol View Post
            Ich hatte noch einiges probiert. Klappt leider auch nicht...
            Hallo,
            mit dieser Aussage kann natürlich niemand was anfangen und bei mir "klappt" das schon.

            In der PHP-XSLTProcessor-Klasse kann man mit der Methode hasExsltSupport prüfen, ob EXSLT überhaupt unterstützt wird.
            Unabhängig davon kann man auch die PHP-date()-Funktion über die registerPHPFunctions-Methode im XSL nutzbar machen und erhält so auch ohne EXSLT-Unterstützung das aktuelle Datum und die Zeit vom Server.

            Bei mir (PHP-Version 5.3) funktionieren beide Varianten:
            PHP Code:
            $xslDoc = <<< EOT
            <?xml version="1.0" encoding="UTF-8"?>
            <xsl:stylesheet version="1.0"
              xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
              xmlns:date="http://exslt.org/dates-and-times"
              xmlns:php="http://php.net/xsl"
              extension-element-prefixes="date php">

            <xsl:template match="/">
              <now>
                <exslt><xsl:value-of select="date:date-time()" /></exslt>
                <php><xsl:value-of select="php:function('date','c')" /></php>
              </now>
            </xsl:template>

            </xsl:stylesheet>
            EOT;

            $xmlDoc = <<< EOT
            <?xml version="1.0" encoding="UTF-8"?>
            <root/>
            EOT;

            $xmlObj = new DomDocument();
            $xmlObj->loadXML($xmlDoc);

            $xslObj = new DomDocument();
            $xslObj->loadXML($xslDoc);

            $xslt = new XSLTProcessor;
            $xslt->registerPHPFunctions('date');
            $xslt->importStylesheet($xslObj);
            $xsltOutput = $xslt->transformToXML($xmlObj);

            header('Content-type: text/xml');
            print $xsltOutput;
            Ausgabe im Browser:
            Code:
            <?xml version="1.0"?>
            <now>
              <exslt>2012-04-22T13:30:03+02:00</exslt>
              <php>2012-04-22T13:30:03+02:00</php>
            </now>

            Comment


            • #7
              Erstmals vielen Dank.

              Unter PHP 5.1.41
              1) EXSLT wird unterstützt
              2) date:date-time() leider Fehlermeldung
              3) Die PHP xmlns: php Lösung ist mir etwas zu exotisch aber interessant

              schwierig

              Comment

              Working...
              X