knuspermagier.de
Since 2005.

Lokale Musik

Ich liebe ja Live-Aufnahmen von Musik. Wer meinen letzten Musik-Post gelesen hat, weiß, dass mir diese ganzen YouTube-Formate wo KünstlerInnen ihre Stücke ohne das ganze Studio-Brimborium spielen, einfach genau mein Vibe sind.

Seit dem ich meine Musik nun hauptsächlich über Spotify konsumiere, habe ich allerdings ein bisschen die Verbindung dazu verloren. Während ich damals z.B., wenn es um Die Ärzte ging hauptsächlich Die Band, die sie Pferd nannten hörte, kann ich das heute nicht mehr, denn die DVD ist niemals als CD erschienen und damit nicht auf Spotify. Ja gut, Wir wollen nur deine Seele und die anderen Live-Alben sind auch ok, aber Die Ärzte sind da auch eine Ausnahme.

Oft gibt es zu den Live-DVDs ja auch beiliegende CDs, die aber nur einen Ausschnitt der Songs enthalten, und so Sachen. Alles nervig. Früher konnte ich das gut umgehen, denn wenn man die DVD hat, kann man ja MP3s extrahieren und die in Foobar2000 werfen. So konnte ich zum Beispiel ständig die Einer Gegen Alle Live-DVD von Samsas Traum genießen — und viele andere tolle Sachen.

Als das ganze Musikstreaming los ging fing ich erst an mit diesem iTunes Match-Service von Apple, der es mir ermöglichte meine ganzen tollen MP3-Dateien von überall zu genießen. Leider benutzte ich es gar nicht so viel — die Apple Musik-App, also iTunes, fand ich nie so toll und damals hatte man kleine iPhones und wenig Datenvolumen. Irgendwann kam die Telekom mit ihrem “Spotify-Traffic kostet nichts”-Tarif, der für die Netzneutralität natürlich nicht förderlich war, für meinen Musikkonsum allerdings schon. Ich wechselte also komplett zu Spotify und sagte leise Lebewohl zu meinen ganzen selbst-getaggten MP3-Dateien, die seit dem ein Schattendasein auf meinem Plex-Server pflegen.

Ja, Plex kann auch Musik-Dateien und mit Plexamp ist das auch gar nicht so schlimm. Trotzdem würde ich mir wünschen, dass ich alles in einer App haben könnte, um genau zu sein am Liebsten in Spotify, denn das mag ich eigentlich ganz gerne. Leider ist die Implementierung der Local Files ziemliche Grütze und wird schnell unübersichtlich, wenn es mehr als fünf Dateien sind.


Zurück zu meinen Lieblings-YouTube-Sachen. Natürlich habe ich hier ein ähnliches Problem, denn ich kann mir die Live-Sets nicht in Spotify anhören, sondern nur auf YouTube und meistens gibt es auch gar keine Liste im Timestamps, wann welche Songs kommen und so, mega nervig. Nun überlegte ich, dass ich die meisten Sachen ja einfach mit youtube-dl herunterladen kann und sicherlich mit ffmpeg und etwas googeln da leicht MP3-Dateien herauspulen kann, so lange ich mir die Mühe mache, mir die Timestamps selber rauszuschreiben.

Nur, was dann machen, mit den Dateien? Bisschen nervig. Tatsächlich kann Apple Music ja noch die Match-Sachen, also, dass man halt seine eigenen Dateien hochladen kann. Vom Musik-Angebot her sollten Apple Music und Spotify ja auch relativ gleich sein. Aber ich habe so viel schlechtes von der Music-App gehört, dass ich eigentlich gar keine Lust habe zu wechseln. Hmmm.

Die BookBeat-Lüge

Wer deutsche Podcasts hört, wird an der nervigen BookBeat-Werbung nicht vorbei gekommen zu sein. Ich hatte das schon vor Jahren mal ausprobiert, damals fand ich aber kein Einziges relevantes Buch im Angebot. Vor ein paar Wochen probierte ich es erneut, ich glaube, als Tobi Schlegl beim Hotel Matze zu Gast war.

Zufällig hatte ich ja gerade Schockraum gelesen und sein neues Buch See. Not. Rettung. erschien am Tag danach. Gelesen von Oliver Rohrbeck. Wer mich kennt, weiß, dass ich da nicht widerstehen kann. Ich erstellte mir also einen neuen BookBeat-Account und meldete mich für den Probemonat an. Oder so, keine Ahnung, wie lange das jetzt kostenlos ist für Podcast-Hörer.

Naja. Das Buch war jedenfalls gut. Danach suchte ich weiter und, da Florenz gerade Scheibenwelt-Dinge liest, dachte ich, ich könnte ja mal nach Scheibenwelt-Hörbüchern gucken. Da ich damals mit Wachen! Wachen! anfing, suchte ich also danach und fand eine Hörspiel-Version. Interessant.

Naja, um es kurz zu machen: Es ist etwas cheesy, aber ich liebe es. Natürlich recherchierte ich direkt nachdem Produktionsstudio namens Bookonear. Die haben eine Website von 1995, auf der moderne Innovationen wie ein Cookie-Banner oder gar ein Impressum, noch nicht angekommen sind. Leider musste ich nun auch schon ernüchtert feststellen, dass sie nicht zu jedem Scheibenwelt-Buch eine Hörspiel-Fassung aufgenommen haben. Neben Wachen! Wachen! gibt es nur noch Pyramiden und Lords und Ladies, die kommen in meiner Lesereihenfolge (ebenfalls eine Webseite aus grauer Vorzeit) aber erst wann anders dran.


Da ich einen Blogpost aber nun nicht einfach positiv zu Ende laufen lassen kann, würde ich mich gerne noch beschweren, denn BookBeat wirbt ja in jeder Werbung immer mit dem unbegrenzten Hörvergnügen. So viel Hörbücher, wie du willst!. Tatsächlich ist es nämlich so, dass man im günstigsten Tarif für neun Euro neunundneunzig — kein Wunder, dass niemand Preise in Worten schreibt, das sieht ja furchtbar aus — gerade mal fünfundzwanzig Stunden hören kann. Hundert Stunden kosten dann schon fünfzehn Euro und die wahre Unbegrenztheit schlägt mit zwanzig Euro zu buche, das sind ja fast 40 Mark.

Wenn man ehrlich ist, muss man auch echt viel Zeit übrig haben, um 100 Stunden Hörbücher wegzuhören. Auf 1,5-facher Geschwindigkeit sind das ja auch schon 150 Stunden. Wahrscheinlich werde ich nichtmal die 25 Stunden in meinem Basic-Tarif schaffen, aber über Clickbait-Werbeversprechen aufregen wird man sich ja wohl noch dürfen.

Lahme Farben (2)

Ich würde nicht sagen, dass es in dieser Ausbaustufe schon besonders viel Spaß macht, denn es ist visuell noch nicht besonders ansehnlich, aber die Spielmechanik sollte soweit funktionieren.

Es gibt also:

  • Einen Startscreen, an dem man auswählt wie viele SpielerInnen teilnehmen, und Namen eintragen kann.
  • Einen Endscreen, der kommt, wenn alle im Ziel sind, der die Zuordnungen auflöst und sagt, wer SiegerIn ist.
  • Einen Screen auf dem man die Regeln / den Spielablauf lesen kann.
  • und natürlich den Screen, auf dem gespielt wird. Mit einem Spielfeld, dass zumindest irgendeine Form hat, Spielfiguren, auch wenn es nur 50x50 Pixel große divs sind und einen Würfel-Button

Weiterlesen →

Lahme Farben (1)

Die letzten Wochen zeigten mir, dass es mir doch viel besser geht, wenn ich irgendein Quatschprojekt habe, über das ich den Tag über nachdenken kann um dann Abends noch etwas dran zu arbeiten.

Lange Zeit habe ich mir quasi verboten neue Quatschsachen anzufangen, weil ich sie meistens direkt wieder weg legte, oder weil ich einfach nichts machen wollte, was keinen größeren Sinn erfüllt. Meine Woche mit BetterJournal, und die darauf folgenden zwei Wochen, wo ich nichts quatschiges machte, weil ich zu viel Kram für Erwachsene zu tun hatte, auf den ich aber wirklich keine Lust hatte, zeigten mir, dass ich aufhören sollte, so viel Wert auf Sinnhaftigkeit zu setzen! Top Erkenntnis.

Was ich allerdings trotzdem ein Bisschen im Auge behalten will ist, dass ich halbwegs abgeschlossene Sachen mache. Oder das Projekt eindeutig abbreche, wenn es keinen Spaß macht und auch alle Spuren davon aus meinem Kopf entferne.

Weiterlesen →

Storage Boxes

Hetzner hat ja schon länger ihre Storage Boxen im Angebot, bisher waren sie aber nicht besonders günstig, dass ich sie anderen Services vorgezogen hätte. Vor ein paar Tagen (ich las es auf Hackernews!) haben sie ihre Preise aktualisiert und nun bekommt man gigantische 5 TB für etwa 12 Euro. Das ist schon eine Kampfansage -- ich zahle aktuell bei Glacier für ca. 3TB Foto-Backups 13 Euro oder so.

Ich habe mir jetzt mal eine gegönnt und werde in den nächsten Monaten versuchen meine Backups dort hin umzuziehen. Mal sehen, wie lange das dauert und wie zuverlässig das mit der Synology HyperBackup-Software klappt.


Natürlich läuft, wie immer, nicht alles nach Plan und so vergeudete ich schonmal zwanzig Minuten mit der Einrichtung. Man muss nämlich bei Server Name https://u123213.your-storagebox.de schreiben statt nur u123213.your-storagebox.de. Da soll man mal drauf kommen. Zum Glück gibt es Foren in diesem Internet.

Musik im Februar

Es wird mal wieder Zeit für eine große Zusammenfassung der Musik, die ich in den letzten Monaten entdeckte. Mittlerweile liebe ich Youtube einfach für diesen Zweck. Wer braucht schon eine Discovery Weekly von Spotify. Einfach ein bisschen in den Youtube-Algorithmus eintauchen und schwupps sind da ein paar Perlen, es gibt allein schon so viele tolle Formate, bei denen dann KünstlerInnen auftreten und meistens eine etwas andere Version ihrer Lieder spielen — und sowas liebe ich ja. Schade ist leider, dass es diese Versionen oft nicht zum hören auf Spotify gibt und ich ständig auf Youtube höre um Musik zu hören, wie so ein dreizehnjähriger damals, der kein Geld hatte, sich CDs zu kaufen.

Naja, ich beginne diesen sehr ausführlichen Post also erstmal mit meinen Lieblings Youtube-Musikformaten, in beliebiger Reihenfolge:

TV Noir — Früher als Show im Admiralspalast und nur Schwarz und Weiß, mittlerweile als Streams aus dem Studio und in Farbe. Meistens sehr reduzierte Arrangements oder nur Akustikversionen. Kann mit fast jeder KünstlerIn, die da Auftritt was anfangen.

THE FIRST TAKE — Ein Japanisches Format. Sehr clean und anscheinend nehmen sie immer nur einen Take auf. Natürlich hauptsächlich japanische KünstlerInnen, aber auch da hab ich schon das ein oder andere tolle Ding gesehen.

KEXP — Ein amerikanischer Radiosender? Kann das sein? Jedenfalls auch sehr nette Live-Performances von diversen KünstlerInnen, natürlich hauptsächlich amerikanisch.

NPR Tiny Desk — Die sollte jeder schon kennen, die guten alten Tiny Desk Concerts. Mittlerweile natürlich auch Corona-bedingt zu Hause. Meist auch reduziert was die Instrumente angeht, was genau mein Fall ist.

Inas Nacht — Nicht wirklich ein Youtube-Format, um ehrlich zu sein hat es nichtmal einen offiziellen Youtube-Kanal, sondern nur ein paar Leute, die da regelmäßig die Performances hochladen. Aber ich muss sagen, dass Ina Müller, oder ihre Redaktion, einen wunderbaren Musikgeschmack bzw ein tolles Gespür für Upcoming Künstler haben. Da gefällt mir auf jeden Fall immer sehr viel.


Kommen wir nun aber zu den KünstlerInnen, die ich seit ein paar Wochen vermehrt höre. Während ich gerade “Künstler” korrekt genderte, merkte ich, dass es natürlich mal wieder eigentlich so gut wie nur Männer sind. Mh.

KLAN — Entdeckt bei TV Noir.

Betterov — Habe ich zuerst auf der TV Noir-Seite gelesen, und befand es für blöd, da ich den Namen nicht mochte. Später stieß ich aber über irgend einen anderen Weg wieder zu ihm, hörte mal rein und war begeistert. Vor allem die Dussmann-Live-Session hat es mir angetan, die höre ich seit Tagen durchgängig. Freue mich darauf, dass das Video vom TV Noir Livestream online geht. Mein absoluter Favorit von dieser Liste.

Tristan Brusch — Er singt bei Dussmann von Betterov mit und danach hörte ich mal in seine eigenen Sachen rein und sie gefallen mir auch ziemlich gut! Ende Februar ist er auch bei TV Noir, ich freue mich schon! Sagte ich schon, dass ich TV Noir liebe??

Oehl — Hannah spielte letztens Keramik im Dauerloop. Ich finde, das Lied klingt am Anfang wie Teardrops von Roosevelt (PS: Schöne Live-Performance bei KEXP), aber es ist sehr schön. Man gewöhnt sich an das Nuscheln, das scheint eine Aufnahmevorausetzung für Grönland Records zu sein, Philipp Poisel versteht man ja auch kaum. Auch hier kann ich einige andere Versionen empfehlen.

Khruangbin — Heißt übrigens “Flugzeug” auf Thailändisch. Habe ich gerade auf der Wikipedia-Seite erfahren. Die Musik ist interessant, da muss man einfach mal reinhören. Soul, Funk, Psychodelisch. Laut Wikipedia.

Tocotronic — Die Tronics, so nenne ich sie jetzt mal, haben ein neues Album! Ich war nie ein Fan von Tocotronic, aber irgendwie finde ich Dirk von Lowtzow in letzter Zeit immer wieder sehr sympathisch und cool mit seinen grauen Haaren? Deswegen gab ich dem Album eine Chance und finde es mittlerweile echt gut. Auch diese Ich tauche auf-Version bei Inas Nacht ist schön.

Erdmöbel — Ein echter Zufallsfund, ich weiß nicht wie das passieren konnte, dass ich die TV Noir (ihr merkt schon, was ich ganz besonders gerne habe, was) Performance von Erdmöbel bisher nicht sah. Also, ich kannte die Band allgemein bisher noch nicht, was auch komisch ist, denn sie hat doch einen so tollen Namen. Naja. Ich hörte noch nicht viel aus der Diskografie, eigentlich nur die TV Noir Lieder und dann Hoffnungsmaschine von einem ihrer neueren Alben. Das Lied ist so mittel, aber ich freute mich sehr, Judith Holofernes mal wieder singen zu hören.

The Lumineers — Eine Band, die man sicher kennt, ist man nicht Philipp, der sie bisher nicht kannte. The Ballad of Cleopatra ist hier die Kombination von mehreren Songs, die eine Geschichte erzählen. Gefällt mir sehr gut, beschäftigte mich aber bisher nicht mit der restlichen Diskografie.

Glen Hansard — Hat mir die Sidebar jetzt mal wieder reingeworfen und ich hab es angeklickt. Ich hab schon ewig nichts mehr von ihm gehört, und das tut mir leid. Was für eine Energie! Ich glaube, ich sollte den älteren Alben nochmal eine Chance geben.

Tonbandgerät — Sehr schön!

WIM — Verlinkte ich ja letztens schonmal. “Leider” gefallen mir ihre TV Noir-Performances wesentlich besser als die Studioversionen auf Spotify, daher konnte ich sie leider noch nicht so richtig in Playlists integrieren.

Fortuna Ehrenfeld — Bekannt aus dem Kettcar-Vorprogramm. Kann man sich sehr gut anhören.

ELIF — Elif mochte ich ja früher, als sie noch nicht so harte Rapmusik machte, lieber, aber ich schaue trotzdem ab und zu nochmal rein, was sie so macht. Diese NACHT SESSION gefällt mir ganz gut.

Danger Dan & Max Herre — Find ich ein kleines bisschen zu weichgespült, aber ich liebe es, dass Drangsal an der Gitarre ist.

Keimzeit — Das neue Album ist raus, aber auf Grund der massiven anderen neuen Eindrücke der letzten Wochen, kam ich noch nicht dazu mich eingehend damit zu beschäftigen. Dafür fand ich dieses gestreamte Konzert, was mir gut gefällt, auch wenn es anscheinend nur 15 FPS hat, so wie es immer ruckelt.

Casper — Bald kommt das neue Album, die bisher veröffentlichten Songs fand ich gemischt gut. Fabian ist bisher der beste, kommt aber nicht an ähnliche Drama-Songs wie Michael X oder Kontrolle/Schlaf ran.


Das war einiges. Natürlich gibts alles auch als Spotify-Playlist, aber natürlich meistens nur die Studio-Versionen, leider.

Neuer Server

Seit einiger langer Zeit denke ich ja darüber nach, dass man mal die Hetzner-Konsole aufräumen sollte. Klar, eine neue VM kostet nur 3 Euro im Monat oder so, da fällt es leicht für jedes Quatschprojekt eine Neue zu klicken, aber natürlich besteht hier das klassische Problem: Es läppert sich.

Dazu kommt, dass die billige VM natürlich eigentlich für alles mögliche ausreicht, aber wenn man mal ein paar Thumbnails generieren will, oder irgendwas machen will, was mehr Resourcen braucht, ist der eine popelige Core auch ganz schön am Strampeln.

Abgesehen davon will ein Mensch, der nebenbei ein paar Quatschprojekte hosted, sich nicht um 10 oder 15 Debian-Distributionen kümmern. Ich habe irgendwann angefangen mir eine Ansible-Konfiguration zusammenzubauen, so wie ich es damals auch bei Nerdlichter machte, aber letztendlich muss ich doch zugeben, dass Systemadministration für mich doch eher ein notwendiges Übel ist und nicht gerade etwas, das großen Joy sparked. Also nichts, was ich gerne in meiner Freizeit mache.

Gerade bin ich auf jeden Fall mal wieder in einer solchen Phase, in der ich zumindest mal ausprobieren will, wie es wohl ist, wenn man mehrere Sachen auf einen Server packt. Völlig unnormal klickte ich dafür jetzt erstmal eine kleine, günstige VM, die aber diesmal zumindest 3 Kerne hat, um damit rumzuspielen, statt direkt den 50€-Ryzen-Server anzuschmeißen.


Also. Was sind meine Wünsche? Ich will eine Linux-Distribution haben, um die ich mich kümmern muss und der Rest soll aber trotzdem irgendwie untereinander abgekapselt laufen, damit da nichts kaputt gehen kann.

Alle werden direkt schreien, ja Docker, was sonst!

Ja, leider habe ich die Angewohnheit, dass ich meine Sachen am Liebsten in PHP schreibe und gerne direkt auf Live arbeite, im Hobby-Umfeld. Zwei Sachen, die Docker eher mittelmäßig kann.

Wenn man jetzt eine tolle Go-Anwendung hat, packt man die Binary einfach in einen Docker-Container und gut ist, alles funzt, alle freuen sich. Für PHP braucht man immer erstmal php-fpm und noch einen Webserver für den Rest, was am Ende schonmal zwei Container sind, und natürlich gibt es auch so Fertigkram, wo alles in einem ist, aber das finde ich einfach schmutzig, ich gehe davon aus, dass ich genau diesen Satz schonmal in diesem Blog geschrieben habe.

Dazu kommt das “an Live arbeiten”: Ich brauche dringend die direkte Möglichkeit, zum Beispiel hier am Blog, an einem Template eine Zeile zu ändern und das Ergebnis unmittelbar zu sehen. Kein “oh, ich führe mal das Build-Script aus, baue den neuen Docker-Container, pushe ihn in die Registry und starte auf dem Server alles neu”.

Ich hab es jetzt erstmal folgendermaßen gelöst: Bei den Laravel-Apps baue ich einen Container mit php:8.1-cli-alpine und benutze CMD [ “php”, “artisan”, “serve”, “—host=0.0.0.0”, “—port=9000” ] in der Dockerfile um einfach den in PHP eingebauten Webserver zu verwenden. Sind ja eh nur Dinge, deren einziger Konsument ich selber bin, da sollte das wohl ausreichen. Um die Möglichkeit des Live-Arbeitens zu haben mounte ich meinen /app-Ordner halt aus dem Dateisystem des Docker-Hosts.

Nun stellt sich die Frage, was mir das eigentlich bringt. Wenn ich eh keine Container habe, die für sich arbeiten, ich also ständig an Dateien herumfummeln will, warum sperre ich es überhaupt ein. Warum nicht einfach alles ganz normal mit php-fpm machen. Wie groß ist schon die Gefahr, dass jemand in eine meiner PHP-Apps einbricht, die eh alle per Basic Auth geschützt sind, und dann auch noch einen Bug in php-fpm hat, der es ermöglicht, da Code zu executen?

Um ehrlich zu sein, ich habe keine Ahnung. Für ein paar der Services, die ich so für mich betrieben habe — bisher auf einzelnen Servern, z. B. eine Gitea-Instanz, ist das glaube ich ganz cool mit Docker, aber mir fällt es schwer den Vorteil für meine Herumspielereien zu sehen, so gerne ich ihn auch sehen würde.

Vor allem, hätte ich gerne, dass mir jemand die letzte Stunde des Rumprobierens wieder gibt, da hat nur so mittelmäßig viel Spaß gemacht.

Vegan Burger Patty

Vor ein paar Tagen hatte ich Lust auf Burger und kaufte im Edeka so einen Fleischersatz. Das letzte Mal hatte ich einen Beyond Meat Burger als er noch ganz frisch war und gerade in Deutschland zu bekommen. Ich fand es damals schon so mittel und naja. Ab und zu kann man ja mal Dinge erneut probieren!

Ich weiß gar nicht mehr von welcher Marke der Burger war, den ich nun getestet habe, aber er schmeckte quasi genau so, wie ich den Beyond in Erinnerung hatte. Irgendwie okay, aber auch einfach egal.
Dazu ist mir nicht ganz klar, warum die Patties so ultra dick sein müssen. Während ich mir also schon die gedankliche Notiz machte, die Dinger beim nächsten mal einmal durchzuschneiden, bevor ich sie brate, fiel es mir wie Schuppen von den Augen:

Es wird gar kein nächstes Mal geben. Ich mag die Patties gar nicht. Wenn man ehrlich ist, mochte ich schon die meisten Fleisch-Patties in Burgerläden nicht. Zu dick und zu fleischig. Ottos Burger war schon soweit okay, die hatten die Besten, aber ansonsten war ich eigentlich nie richtig zufrieden. Zudem fühlte ich mich nach dem Konsum auch nie wirklich gut und stundenlang danach noch aufstoßen müssen war auch nicht so geil.

Diese Fleischersatz-Patties verbinden für mich nun die schlechtesten Eigenschaften von echten Patties – Mittelgeil, zu fleischig, danach aufstoßen müssen – noch mit der ebenfalls mittelmäßigen Tatsache, dass ich da ein künstlich hergestelltes Produkt aus tausend Inhaltsstoffen vor mir habe, statt zum Beispiel eine Möhre.


Immerhin gibt es ja noch genug andere Dinge, die man auf Burger legen kann. Zum Beispiel Halloumi, oder eins der tausend anderen veganen oder vegetarischen Patty-Rezepte auf diesem Planeten. Oder zur Not halt Hähnchenersatz-Dinger. Die sind zwar auch nicht besonders natürlich, aber immerhin ist ein Plant-based Long Chicken (mit extra Käse und Röstzwiebeln) vom Burger King das beste Fastfood-Gericht, das ich in den letzten zehn Jahren entdeckt habe.

DateTime

Ich bin ja manchmal sehr resistent dagegen, neue Sachen zu lernen. PHP bietet seit Version 5.2.0 die DateTime-Klasse, aber ich benutze eigentlich so gut wie immer, wenn es um Daten und Zeiten geht noch Funktionen wie date, strftime und strtotime. Achja und mktime nicht zu vergessen!

Also, natürlich habe ich auch DateTime schonmal benutzt, in größeren Applikationen, aber ich meine, wenn ich jetzt eben mal schnell ein Script zusammenklöppel dann kommt es mir nicht so leicht aus den Fingern. Weil seit PHP 8.1.0 nun strftime deprecated ist, nehme ich das zum Anlass, mir mal den neuen heißen Scheiß genau anzugucken und Teile meines Gehirns zu überschreiben. Ich versuche es zumindest.

neonbrand-kyxxmtptzek-unsplash.jpg
Normalerweise verzichte ich ja auf nichts sagende Stockfotos, aber eine verdammte Sanduhr, äh ein holistic hourglass, bot sich hier einfach an.

date

Die Funktion von date ist natürlich das Formatieren eines Unix Timestamps, wär hätte das bei dem Funktionsnamen erwartet.

echo date('Y-m-d H:i:s', 1231234514);
// Ergibt zum Beispiel 2009-01-06 09:35:14

Kann ja nicht so schwer sein, dass jetzt mit DateTime zu machen:

$d = new DateTime('@1231234514');
echo $d->format('Y-m-d H:i:s');
// Ergibt zum Beispiel 2009-01-06 09:35:14

Ja gut, die Syntax mit @ ist ja etwas komisch, aber wenn man kein date benutzt, muss man eigentlich auch fast keine Unix Timestamps mehr benutzen, da man eh alles in DateTime hat, oder halt in Date-Strings, und das kann DateTime ja auch einfach direkt:

$d = new DateTime('2010-10-10 12:15:33');
echo $d->format('Y-m-d H:i:s');
// Ergibt zum Beispiel 2010-10-10 12:15:33

Der Format-String ist auf jeden Fall der gleiche Kram wie bei date, das ist schön. Nicht so wie bei strftime, wo man sich absurde Dinge mit Prozentzeichen merken muss!

strftime

Der hässliche kleine Bruder von date, wo man jedes mal Nachschlagen muss, welche Format-Strings man jetzt benutzen muss. Immerhin jetzt deprecated. Doch wozu habe ich strftime benutzt? Immer, wenn bei der QA jemand sagte “Ja in Deutsch heißt das aber gar nicht February XD”. Ja, stimmt. date kann keine Locale. So im Jahr 2006 habe ich da dann noch folgendes gemacht:

$months = ['', 'Januar', 'Februar', 'März', …];
$monthName = $month[date('n', $timestamp)];

$formatted = date('d.', $timestamp) . ' ' . $monthName;

Wie oft ich in meinem jungen Leben damals wohl Arrays mit Monatsnamen tippte. Damals gab es ja auch noch keine Notizapps und Copy-Paste! Naja, vielleicht doch, aber ich brauche immer so lang um mich an Sachen zu gewöhnen.

Jedenfalls benutzt man strftime jetzt ungefähr so:

echo strftime('%A, %e. %B', 1231234514);
// Ergibt: Tuesday,  6. January

setlocale(LC_TIME, 'de_DE');
echo strftime('%A, %e. %B', 1231234514);
// Ergibt: Dienstag,  6. Januar

Tut also das, was man will. Leider ist das handlen der System-Locale und so immer etwas fummelig und je nach Server-Konfiguration funktioniert es auch nicht, weil de_DE zum Beispiel nicht installiert ist. Zudem der komplett andere Format-String. Trotzdem hab ich es jetzt einige Jahre benutzt.

Wie macht man es nun mit DateTime? Gar nicht! Haha, denn DateTime kann auch keine Locale. Seit PHP 5.3.0 gibt es aber den IntlDateFormatter, wenn man die intl-Extension installiert hat.

$d = new DateTime('@1231234514');
$formatter = new IntlDateFormatter(
    'de_DE', 
    IntlDateFormatter::SHORT, 
    IntlDateFormatter::SHORT,
    null,
    null,
    'EEEE, d. LLLL'
);

echo $formatter->format($d);
// Ergibt: Dienstag,  6. Januar

Ist etwas… klobig, aber zeigt mir eine Programmiersprache, in der internationales Daten-Formatieren nicht mega ausführlich ist. Das Pattern ist natürlich auch ein anderes als bei date und dem normalen format von DateTime, man muss nämlich die offiziellen Symbols aus der Tabelle der ICU nehmen. Immerhin kennt man die schon ganz gut, wenn man öfter unter JavaScript Daten mit datefns formatiert.

Fassen wir zusammen: Vorher dumm, nachher bisschen weniger dumm, aber etwas, was man sich immer zusammenkopieren wird.

strtotime

Eine meiner Lieblingsfunktionen, denn sie tut genau das, was man erwartet. Aus 2009-01-06 09:35:14 wird 1231234514. Wie man oben schon gesehen hat, kann DateTime das ja direkt im Konstruktor, das wird also ein einfaches, mir das anzugewöhnen.

mktime

Selten genutzt und jedes mal gehasst, aufgrund der Parameter-Reihenfolge, wer soll sich das merken:

mktime(
    int $hour,
    ?int $minute = null,
    ?int $second = null,
    ?int $month = null,
    ?int $day = null,
    ?int $year = null
): int|false

Da kann DateTime natürlich punkten:

$d = new DateTime();
$d->setTime(12, 0, 0);
$d->setDate(2010, 1, 4);

Fazit

Eigentlich ist es gar nicht so schwer, man müsste sich nur mal darauf committen, wie bei so vielem im Leben. Zahnseide benutzen ist auch gar nicht so schwer, man muss es nur eben machen! Was Laravel-Apps und sowas angeht wird das auch nicht so schwierig, mal sehen, ob ich auch in meinen Quick’n’Dirty-Scripten darauf umschwenken kann.

Bonus: Carbon

Jetzt kommen sicher alle und rufen, halt, stopp, benutz doch einfach Carbon! Ja, guter Einwand. Carbon ist auch echt nett und hat einen ganz großen Haufen von Convenience-Funktionen, zum Beispiel geht das internationale Formatieren wesentlich schnittiger.

Da Laravel soweit ich weiß, zumindest war es früher so, Carbon mitbringt, hatte ich damit auch schon viel Kontakt und habe es hier und da auch eingesetzt, aber, wie schon dreimal gesagt, der Hauptpunkt, wo ich weg will von den Legacy-Kram sind schnelle Scripte und Quatschkram, bei dem ich nicht erstmal eine Third Party Library installieren will. Daher wollte ich mir hier erstmal die eingebauten Möglichkeiten genau angucken.