Update: 2020-05-21
Lokalzeit.ino

// ****************************************************************
// Sketch Esp8266 Lokalzeit Modular(Tab)
// created: Jens Fleischer, 2018-07-10
// last mod: Jens Fleischer, 2019-05-04
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp8266
// Software: Esp8266 Arduino Core 2.4.2 / 2.5.2 / 2.6.3
// Getestet auf: Nodemcu, Wemos D1 Mini Pro, Sonoff Switch, Sonoff Dual
/******************************************************************
  Copyright (c) 2018 Jens Fleischer. All rights reserved.

  This file is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
  This file is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
*******************************************************************/
// Diese Version von Lokalzeit sollte als Tab eingebunden werden.
// #include <ESP8266WebServer.h> oder #include <ESP8266WiFi.h> muss im Haupttab aufgerufen werden.
// Funktion "setupTime();" muss im setup() nach dem Verbindungsaufbau aufgerufen werden.
/**************************************************************************************/

#include <time.h>

struct tm tm;

const char* const PROGMEM ntpServer[] = {"fritz.box", "de.pool.ntp.org", "at.pool.ntp.org", "ch.pool.ntp.org", "ptbtime1.ptb.de", "europe.pool.ntp.org"};
const char* const PROGMEM dayNames[] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
const char* const PROGMEM dayShortNames[] = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};
const char* const PROGMEM monthNames[] = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"};
const char* const PROGMEM monthShortNames[] = {"Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"};

void setupTime() {
  configTime(0, 0, ntpServer[1]);                      // deinen NTP Server einstellen (von 0 - 5 aus obiger Liste)
  setenv("TZ", "CET-1CEST,M3.5.0/02,M10.5.0/03", 1);   // Zeitzone einstellen https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
  delay(250);
  server.on("/zeit", []() {
    server.send(200, "application/json",  "\"" + localTime() + "\"");
  });
}

String localTime() {
  static char buf[20];                                 // je nach Format von "strftime" eventuell anpassen
  static time_t lastsec = 0;
  time_t now = time(&now);
  localtime_r(&now, &tm);
  if (tm.tm_sec != lastsec) {
    lastsec = tm.tm_sec;
    Serial.println(dayNames[tm.tm_wday]);              // druckt den aktuellen Tag
    Serial.println(monthNames[tm.tm_mon]);             // druckt den aktuellen Monat
    Serial.println(dayShortNames[tm.tm_wday]);         // druckt den aktuellen Tag (Abk.)
    Serial.println(monthShortNames[tm.tm_mon]);        // druckt den aktuellen Monat (Abk.)
    strftime (buf, sizeof(buf), "%d.%m.%Y %T ", &tm);  // http://www.cplusplus.com/reference/ctime/strftime/
    if (!(time(&now) % 86400)) {                       // einmal am Tag die Zeit vom NTP Server holen o. jede Stunde "% 3600" aller zwei "% 7200"
      setupTime();
    }
  }
  return buf;
}
zeit.html

<!DOCTYPE HTML> <!-- For more information visit: https://fipsok.de -->
<html lang="de">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Uhrzeit</title>
    <script>
      function renew() {
        fetch('/zeit').then(function (response) {
          return response.json();
        }).then(function (text) {
		  let result = text.split(/\s/);
          document.querySelector('span').innerHTML = result[1];
        });
      }
      document.addEventListener('DOMContentLoaded', renew, setInterval(renew, 1000));
    </script>
    <style>
      body {
        padding: 10px;
        font-size: 3.2em;
      }
      main {
		display: flex;
        flex-direction: column;
        align-items: center;		
        background-color: black;
        width: 280px;
        height: 100px;
        padding: 0.2em;		
        border: .15em solid #aeaeab;
        box-shadow: 5px 10px 5px rgba(0, 0, 0, 0.7);
        border-radius: .2em;
      }
      span {
        color: #02fc07;
        position: relative;
        top: 0.5em;
        left: .1em;
        letter-spacing: .1em;
        font-weight: bold
      }
    </style>
  </head>
  <body>
    <main>
      <span></span>
    </main>
  </body>
</html>
zeitdatum.html

<!DOCTYPE HTML> <!-- For more information visit: https://fipsok.de -->
<html lang="de">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Uhrzeit</title>
    <script>
      function renew() {
        fetch('/zeit').then(function (response) {
          return response.json();
        }).then(function (text) {
          let result = text.split(/\s/);
          document.querySelector('#datum').innerHTML = result[0];
          document.querySelector('#zeit').innerHTML = result[1];
        });
      }
      document.addEventListener('DOMContentLoaded', renew, setInterval(renew, 1000));
    </script>
    <style>
      body {
        padding: 10px;
        font-size: 3.2em;
      }
      main {
		display: flex;
        flex-direction: column;
        align-items: center;		
        background-color: black;
        width: 280px;
        height: 140px;
        padding: 0.2em;		
        border: .15em solid #aeaeab;
        box-shadow: 5px 10px 5px rgba(0, 0, 0, 0.7);
        border-radius: .2em;
      }
      span {
        color: #00ff05;
        position: relative;
        top: 0.3em;
        left: .1em;
        letter-spacing: .1em;
        font-weight: bold
      }
	  #datum {
        font-size: 0.7em;
        margin-top: 0.5em;
      }
    </style>
  </head>
  <body>
    <main>
      <span id='zeit'></span>
      <span id='datum'></span>
    </main>
  </body>
</html>