Erwägungen:
1.
Mit Urteil vom 25. Oktober 2017 erteilte das Bezirksgericht Dietikon den Beschwerdegegnern gegenüber dem Beschwerdeführer in der Betreibung Nr. xxx des Betreibungsamts Dietikon definitive Rechtsöffnung für Fr. 4'188.25.
Gegen dieses Urteil erhob der Beschwerdeführer am 1. Dezember 2017 (Postaufgabe) Beschwerde an das Obergericht des Kantons Zürich. Mit Beschluss vom 4. Januar 2018 trat das Obergericht auf die Beschwerde infolge Fristversäumnisses nicht ein.
Gegen diesen Beschluss hat der Beschwerdeführer am 13. Februar 2018 Beschwerde in Zivilsachen/subsidiäre Verfassungsbeschwerde an das Bundesgericht erhoben. Mit Verfügung vom 14. Februar 2018 hat das Bundesgericht das Gesuch um aufschiebende Wirkung abgewiesen. Am 16. Februar 2018 hat der Beschwerdeführer um Wiedererwägung des Gesuchs um aufschiebende Wirkung ersucht.
Das Bundesgericht hat die Akten beigezogen, aber keine Vernehmlassungen eingeholt.
2.
Aufgrund des tiefen Streitwerts (Art. 74 Abs. 1 lit. b BGG) und mangels Vorliegens einer Rechtsfrage von grundsätzlicher Bedeutung (Art. 74 Abs. 2 lit. a BGG) ist die Beschwerde in Zivilsachen unzulässig und die Eingabe als subsidiäre Verfassungsbeschwerde entgegenzunehmen (Art. 113 ff. BGG). In einer subsidiären Verfassungsbeschwerde kann nur die Rüge der Verletzung verfassungsmässiger Rechte vorgebracht werden (Art. 116 BGG). Diese ist zu begründen (Art. 117 i.V.m. Art. 106 Abs. 2 BGG), d.h. anhand der Erwägungen des kantonalen Entscheids ist klar und detailliert darzulegen, welche verfassungsmässigen Rechte und inwiefern sie durch den angefochtenen Entscheid verletzt sein sollen (BGE 133 II 396 E. 3.1 S. 399).
3.
Das Obergericht hat erwogen, das Urteil des Bezirksgerichts sei dem Beschwerdeführer am 20. November 2017 zugestellt worden. Die Beschwerdefrist von zehn Tagen gemäss der korrekten Rechtsmittelbelehrung (Art. 321 Abs. 2 i.V.m. Art. 251 lit. a ZPO) sei somit am 30. November 2017 abgelaufen. Die erst am 1. Dezember 2017 der Post übergebene kantonale Beschwerde sei somit verspätet (Art. 143 Abs. 1 ZPO).
Der Beschwerdeführer bestreitet diese Erwägungen nicht, sondern macht geltend, er habe die Beschwerdefrist nicht korrekt berechnet. Es sei nicht seine Absicht gewesen, die Frist nicht einzuhalten, und er bittet um Verzeihung für die Fristversäumnis. Entgegen dem, wovon der Beschwerdeführer auszugehen scheint, kann das Bundesgericht bei dieser Ausgangslage die Rechtmässigkeit des Urteils des Bezirksgerichts nicht überprüfen und damit die Fristversäumnis vor Obergericht gewissermassen ungeschehen machen. Das Urteil des Bezirksgerichts kann vor Bundesgericht nicht angefochten werden (Art. 114 i.V.m. Art. 75 BGG). Das Bundesgericht könnte einzig überprüfen, ob der angefochtene Beschluss des Obergerichts gegen verfassungsmässige Rechte verstösst. Entsprechende Rügen fehlen allerdings, da der Beschwerdeführer - wie erwähnt - die Erwägungen des Obergerichts nicht bestreitet. Für ein allfälliges Gesuch um Wiederherstellung der Frist hätte sich der Beschwerdeführer an das Obergericht zu wenden (Art. 148 ZPO).
Die Beschwerde ist damit offensichtlich unzulässig bzw. sie enthält offensichtlich keine hinreichende Begründung. Auf sie ist im vereinfachten Verfahren gemäss Art. 117 i.V.m. Art. 108 Abs. 1 lit. a und b BGG durch das präsidierende Mitglied der Abteilung nicht einzutreten. Das Gesuch um Wiedererwägung hinsichtlich der aufschiebenden Wirkung wird mit dem Entscheid in der Sache gegenstandslos.
4.
Auf die Erhebung von Gerichtskosten ist ausnahmsweise zu verzichten (Art. 66 Abs. 1 BGG).
Demnach erkennt das präsidierende Mitglied:
1.
Auf die Beschwerde wird nicht eingetreten.
2.
Das Gesuch um Wiedererwägung hinsichtlich der aufschiebenden Wirkung wird als gegenstandslos abgeschrieben.
3.
Es werden keine Gerichtskosten erhoben.
4.
Dieses Urteil wird den Parteien und dem Obergericht des Kantons Zürich, I. Zivilkammer, schriftlich mitgeteilt.
Lausanne, 20. Februar 2018
Im Namen der II. zivilrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Das präsidierende Mitglied: Escher
Der Gerichtsschreiber: Zingg