Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4088 > unrolled thread

date() Parameter Z

Started byRalph Stahl <post@rstahl.de>
First post2017-04-03 13:43 +0200
Last post2017-04-06 09:18 +0200
Articles 10 — 5 participants

Back to article view | Back to de.comp.lang.php


Contents

  date() Parameter Z Ralph Stahl <post@rstahl.de> - 2017-04-03 13:43 +0200
    Re: date() Parameter Z Niels Braczek <nbraczek@freenet.de> - 2017-04-03 13:58 +0200
      Re: date() Parameter Z Ralph Stahl <post@rstahl.de> - 2017-04-03 14:08 +0200
        Re: date() Parameter Z Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-04-03 12:47 +0000
          Re: date() Parameter Z Ralph Stahl <post@rstahl.de> - 2017-04-03 15:58 +0200
            Re: date() Parameter Z "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-04-03 17:36 +0200
              Re: date() Parameter Z Ralph Stahl <post@rstahl.de> - 2017-04-03 18:53 +0200
              Re: date() Parameter Z Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-04-05 22:30 +0200
        Re: date() Parameter Z Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-04-05 22:51 +0200
          Re: date() Parameter Z Ralph Stahl <post@rstahl.de> - 2017-04-06 09:18 +0200

#4088 — date() Parameter Z

FromRalph Stahl <post@rstahl.de>
Date2017-04-03 13:43 +0200
Subjectdate() Parameter Z
Message-ID<obtcbq$299$1@dont-email.me>
Mahlzeit!

In einer Vorgabe des Auftraggebers soll ein Datum/Zeit-String dieser
Gestalt erzeugt werden:

'2017-04-03T10:00:07.766Z'

Niemand dort ist in der Lage, die Bedeutung von '.766Z' zu erklären :-(
(toll, nicht wahr). Tausendstel Sekunden haben keinen Sinn, die werden
nicht erzeugt. Das Z ist sicher nicht der Parameter Z, der für den
Formatstring als Kennzeichen für den Zeitoffset bezüglich der Zeitzone.
Wie ich die 766 (variabel) erzeugen sollte, weiß ich nicht - keine
Ahnung, was das ist.

Hat jemand sowas schonmal gesehen? Ich wüßte nicht, wonach ich suchen
sollte.

Genau genommen lautet die Aufgabe, einen Zeitstring mit Berliner
Sommerzeit zu erzeugen. Also üblicherweise sowas wie

date('Y-m-dTH:i:s', time() - date('Z'));
// die Korrektur, weil der Webserver mit GMT läuft und *dessen* Zeit
gebraucht wird

Aber es sollen eben diese ominösen 5 Zeichen hinten dran hängen, die
keiner erklären kann...

Danke im Voraus,
Ralph

[toc] | [next] | [standalone]


#4089

FromNiels Braczek <nbraczek@freenet.de>
Date2017-04-03 13:58 +0200
Message-ID<obtddp$d3s$1@news.albasani.net>
In reply to#4088
Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
> Mahlzeit!
> 
> In einer Vorgabe des Auftraggebers soll ein Datum/Zeit-String dieser
> Gestalt erzeugt werden:
> 
> '2017-04-03T10:00:07.766Z'

.766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
(gleichbedeutend mit UTC).

MfG
Niels

-- 
| New Stars on the Horizon:      GreenCape  ·  nibralab  ·  laJoom |
| http://www.bsds.de   ·   BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |
 ------------------------------------------------------------------

[toc] | [prev] | [next] | [standalone]


#4090

FromRalph Stahl <post@rstahl.de>
Date2017-04-03 14:08 +0200
Message-ID<obtdpl$7d9$1@dont-email.me>
In reply to#4089
Niels Braczek schrieb:
> Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
>> Mahlzeit!
>>
>> In einer Vorgabe des Auftraggebers soll ein Datum/Zeit-String dieser
>> Gestalt erzeugt werden:
>>
>> '2017-04-03T10:00:07.766Z'
> 
> ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
> (gleichbedeutend mit UTC).
> 
> MfG
> Niels
> 

8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
Formatstring??? Abgesehen davon, dass die Anwendung auch ohne diesen
Unfug zu funktionieren scheint.

Zulu Time https://www.timeanddate.com/time/zones/z, nie gehört, danke!

Ralph

[toc] | [prev] | [next] | [standalone]


#4091

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2017-04-03 12:47 +0000
Message-ID<1t58e243b4i7814n3e8%sfroehli@Froehlich.Priv.at>
In reply to#4090
On Mon, 03 Apr 2017 14:08:10 Ralph Stahl wrote:
> Niels Braczek schrieb:
> > Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
> >> '2017-04-03T10:00:07.766Z'
 
> > ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
> > (gleichbedeutend mit UTC).

> 8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
> Formatstring???

Im Zweifelsfall mit "000", würde ich sagen, alternativ dazu geht bei einem
misstrauischen Auftraggeber natürlich auch sprintf('%03d', rand(0,999)).

Oder Du leitest die Sekundenbruchteile aus microtime() ab. Wie genau der
Zeitstempel tatsächlich sein muss, kann hier ja niemand einschätzen.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - der kultiviertste Quatsch, den es je gab.
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#4092

FromRalph Stahl <post@rstahl.de>
Date2017-04-03 15:58 +0200
Message-ID<obtk7l$thg$1@dont-email.me>
In reply to#4091
Stefan Froehlich schrieb:
> On Mon, 03 Apr 2017 14:08:10 Ralph Stahl wrote:
>> Niels Braczek schrieb:
>>> Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
>>>> '2017-04-03T10:00:07.766Z'
>  
>>> ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
>>> (gleichbedeutend mit UTC).
> 
>> 8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
>> Formatstring???
> 
> Im Zweifelsfall mit "000", würde ich sagen, alternativ dazu geht bei einem
> misstrauischen Auftraggeber natürlich auch sprintf('%03d', rand(0,999)).
> 
> Oder Du leitest die Sekundenbruchteile aus microtime() ab. Wie genau der
> Zeitstempel tatsächlich sein muss, kann hier ja niemand einschätzen.
> 
> Servus,
>    Stefan
> 

Ah, microtime ginge. 000 wäre "korrekt". Weglassen geht auch, wie ich
schon weiß :-). Vielleicht hat der Auftraggeber nur einen Traum gehabt...

Danke!

Ralph

[toc] | [prev] | [next] | [standalone]


#4093

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2017-04-03 17:36 +0200
Message-ID<obtq5d$5iv$1@solani.org>
In reply to#4092
Am 03.04.2017 um 15:58 schrieb Ralph Stahl:

> Stefan Froehlich schrieb:
>
>> On Mon, 03 Apr 2017 14:08:10 Ralph Stahl wrote:
>>
>>> Niels Braczek schrieb:
>>>
>>>> Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
>>>>
>>>>> '2017-04-03T10:00:07.766Z'
>>>>
>>>> ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
>>>> (gleichbedeutend mit UTC).
>>>
>>> 8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
>>> Formatstring???
>>
>> Im Zweifelsfall mit "000", würde ich sagen, alternativ dazu geht bei einem
>> misstrauischen Auftraggeber natürlich auch sprintf('%03d', rand(0,999)).

Man muss sich halt zu helfen wissen. ;)

>> Oder Du leitest die Sekundenbruchteile aus microtime() ab. Wie genau der
>> Zeitstempel tatsächlich sein muss, kann hier ja niemand einschätzen.
> 
> Ah, microtime ginge. 000 wäre "korrekt". Weglassen geht auch, wie ich
> schon weiß :-). Vielleicht hat der Auftraggeber nur einen Traum gehabt...

Ab PHP 7.1.0 sollte es eigentlich ganz einfach sein. Hier mal ohne
Berücksichtigung der Zeitzone:

  (new DateTime)->format('Y-m-d\TH:i:s.v\Z')

Siehe <https://3v4l.org/X0H4C>. Die `000` unter 7.1.3 macht mich aber
stutzig – sollte besser überprüft werden.

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4094

FromRalph Stahl <post@rstahl.de>
Date2017-04-03 18:53 +0200
Message-ID<obtuh1$4af$1@dont-email.me>
In reply to#4093
Christoph M. Becker schrieb:
> Am 03.04.2017 um 15:58 schrieb Ralph Stahl:
> 
>> Stefan Froehlich schrieb:
>>
>>> On Mon, 03 Apr 2017 14:08:10 Ralph Stahl wrote:
>>>
>>>> Niels Braczek schrieb:
>>>>
>>>>> Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
>>>>>
>>>>>> '2017-04-03T10:00:07.766Z'
>>>>>
>>>>> ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
>>>>> (gleichbedeutend mit UTC).
>>>>
>>>> 8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
>>>> Formatstring???
>>>
>>> Im Zweifelsfall mit "000", würde ich sagen, alternativ dazu geht bei einem
>>> misstrauischen Auftraggeber natürlich auch sprintf('%03d', rand(0,999)).
> 
> Man muss sich halt zu helfen wissen. ;)
> 
>>> Oder Du leitest die Sekundenbruchteile aus microtime() ab. Wie genau der
>>> Zeitstempel tatsächlich sein muss, kann hier ja niemand einschätzen.
>>
>> Ah, microtime ginge. 000 wäre "korrekt". Weglassen geht auch, wie ich
>> schon weiß :-). Vielleicht hat der Auftraggeber nur einen Traum gehabt...
> 
> Ab PHP 7.1.0 sollte es eigentlich ganz einfach sein. Hier mal ohne
> Berücksichtigung der Zeitzone:
> 
>   (new DateTime)->format('Y-m-d\TH:i:s.v\Z')
> 
> Siehe <https://3v4l.org/X0H4C>. Die `000` unter 7.1.3 macht mich aber
> stutzig – sollte besser überprüft werden.
> 

Aha, das v war mir neu, danke!

[toc] | [prev] | [next] | [standalone]


#4101

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2017-04-05 22:30 +0200
Message-ID<5256459.lOV4Wx5bFT@PointedEars.de>
In reply to#4093
Christoph M. Becker wrote:

> Ab PHP 7.1.0 sollte es eigentlich ganz einfach sein. Hier mal ohne
> Berücksichtigung der Zeitzone:
> 
>   (new DateTime)->format('Y-m-d\TH:i:s.v\Z')
> 
> Siehe <https://3v4l.org/X0H4C>. Die `000` unter 7.1.3 macht mich aber
> stutzig – sollte besser überprüft werden.

Das muss nicht an PHP liegen.  PHP kann nur die Zeit in der Genauigkeit 
liefern, die das Betriebssystem bereitstellt.
 
-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4102

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2017-04-05 22:51 +0200
Message-ID<4278388.31r3eYUQgx@PointedEars.de>
In reply to#4090
Ralph Stahl wrote:

> Niels Braczek schrieb:
>> Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
>>> In einer Vorgabe des Auftraggebers soll ein Datum/Zeit-String dieser
>>> Gestalt erzeugt werden:
>>>
>>> '2017-04-03T10:00:07.766Z'
>> 
>> ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
>> (gleichbedeutend mit UTC).
>> […]
> 
> 8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
> Formatstring???

'.000', '.' . str_repeat('0', 3), … ;-)

> Abgesehen davon, dass die Anwendung auch ohne diesen
> Unfug zu funktionieren scheint.

Dann solltest Du mit dem Auftraggeber das Pflichtenheft diskutieren.
Wo nichts ist, kann/sollte auch nichts angegeben werden.
 
> Zulu Time https://www.timeanddate.com/time/zones/z, nie gehört, danke!

Ich kannte das schon.

Meine weitere Recherche hat aber ergeben, dass es “Zulu Time” heisst, weil 
der Buchstabe “Z” im NATO-Alphabet mit “Zulu” buchstabiert wird, und die 
Zeitzonen mit Buchstaben bezeichnet werden. [1]  Da das Internet aus 
Technologien, die zuerst im ARPANET der Advanced Research Projects Agency 
(ARPA) des US-Verteidigungsministeriums verwendet wurden, entstanden ist, 
verwundert mich die Verwendung militärischer Terminologie in Datumsformaten 
für Internet-Protokolle nicht.  Faszinierend.

Die Vermutung liegt nahe, dass jene Zeitzone mit “Z” bezeichnet wurde, weil 
der Zeitunterschied zwischen “Zulu Time” und UTC exakt 0 (“zero”) ist.  Es 
könnte aber auch unbeabsichtigt geschehen sein, weil diese Zeitzone in der 
Liste, die mit UTC+01:00 beginnt und sich in östlicher Richtung fortsetzt, 
die letzte ist und somit auch den letzten Buchstaben erhalten hat (der 
zufälligerweise auch der letzte des NATO-Alphabets ist). [2]

[1] <https://en.wikipedia.org/wiki/Coordinated_Universal_Time#Time_zones> 
[2] <https://en.wikipedia.org/wiki/List_of_military_time_zones>

-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4103

FromRalph Stahl <post@rstahl.de>
Date2017-04-06 09:18 +0200
Message-ID<oc4ptq$63d$1@dont-email.me>
In reply to#4102
Thomas 'PointedEars' Lahn schrieb:
> Ralph Stahl wrote:
> 
>> Niels Braczek schrieb:
>>> Am 03.04.2017 um 13:43 schrieb Ralph Stahl:
>>>> In einer Vorgabe des Auftraggebers soll ein Datum/Zeit-String dieser
>>>> Gestalt erzeugt werden:
>>>>
>>>> '2017-04-03T10:00:07.766Z'
>>>
>>> ..766 ist tatsächlich der Sekundenbruchteitl. Das Z steht für Zulu Time
>>> (gleichbedeutend mit UTC).
>>> […]
>>
>> 8-) ! Und wie erzeuge ich die nicht gemessenen 1/1000 Sekunden im
>> Formatstring???
> 
> '.000', '.' . str_repeat('0', 3), … ;-)

Jaja, schon gut :-). _Das_ kann ich auch! Letzteres ist besonderes
akademisch ggg.
> 
>> Abgesehen davon, dass die Anwendung auch ohne diesen
>> Unfug zu funktionieren scheint.
> 
> Dann solltest Du mit dem Auftraggeber das Pflichtenheft diskutieren.


Das scheint das Hauptproblem bei diesem Projekt zu sein...


> Wo nichts ist, kann/sollte auch nichts angegeben werden.
>  
>> Zulu Time https://www.timeanddate.com/time/zones/z, nie gehört, danke!
> 
> Ich kannte das schon.
> 
> Meine weitere Recherche hat aber ergeben, dass es “Zulu Time” heisst, weil 
> der Buchstabe “Z” im NATO-Alphabet mit “Zulu” buchstabiert wird, und die 
> Zeitzonen mit Buchstaben bezeichnet werden. [1]  Da das Internet aus 
> Technologien, die zuerst im ARPANET der Advanced Research Projects Agency 
> (ARPA) des US-Verteidigungsministeriums verwendet wurden, entstanden ist, 
> verwundert mich die Verwendung militärischer Terminologie in Datumsformaten 
> für Internet-Protokolle nicht.  Faszinierend.
> 
> Die Vermutung liegt nahe, dass jene Zeitzone mit “Z” bezeichnet wurde, weil 
> der Zeitunterschied zwischen “Zulu Time” und UTC exakt 0 (“zero”) ist.  Es 
> könnte aber auch unbeabsichtigt geschehen sein, weil diese Zeitzone in der 
> Liste, die mit UTC+01:00 beginnt und sich in östlicher Richtung fortsetzt, 
> die letzte ist und somit auch den letzten Buchstaben erhalten hat (der 
> zufälligerweise auch der letzte des NATO-Alphabets ist). [2]
> 
> [1] <https://en.wikipedia.org/wiki/Coordinated_Universal_Time#Time_zones> 
> [2] <https://en.wikipedia.org/wiki/List_of_military_time_zones>
> 

Schöner Ausflug in die Geschichte, danke!

Ralph

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.php


csiph-web