From 30507681f747eb5addf56afe7d91e226c62b9916 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Fri, 17 Jan 2025 16:57:01 +0000 Subject: [PATCH] LibJS: Parse dates like "2021-04-21T15:00:00+0000" This is used on figma.com --- Libraries/LibJS/Runtime/DateConstructor.cpp | 1 + Libraries/LibJS/Tests/builtins/Date/Date.parse.js | 1 + 2 files changed, 2 insertions(+) diff --git a/Libraries/LibJS/Runtime/DateConstructor.cpp b/Libraries/LibJS/Runtime/DateConstructor.cpp index 505d53fb3df..17f8ad8d8a5 100644 --- a/Libraries/LibJS/Runtime/DateConstructor.cpp +++ b/Libraries/LibJS/Runtime/DateConstructor.cpp @@ -194,6 +194,7 @@ static double parse_date_string(VM& vm, StringView date_string) "%a%t%b%t%e%t%Y"sv, // "Wed Nov 20 2024" "%Y-%m-%d%t%H:%M:%S%z"sv, // "2024-12-30 03:00:00+0000" "%Y-%m-%d%t%H:%M:%S%X"sv, // "2025-01-13 00:00:00.000" + "%Y-%m-%eT%T%z"sv, // "2021-04-21T15:00:00+0000" }; for (auto const& format : extra_formats) { diff --git a/Libraries/LibJS/Tests/builtins/Date/Date.parse.js b/Libraries/LibJS/Tests/builtins/Date/Date.parse.js index 1759b76d7b3..b7ecc5147b3 100644 --- a/Libraries/LibJS/Tests/builtins/Date/Date.parse.js +++ b/Libraries/LibJS/Tests/builtins/Date/Date.parse.js @@ -46,6 +46,7 @@ test("basic functionality", () => { expect(Date.parse("2025-01-02 14:00:00+0000")).toBe(1735826400000); expect(Date.parse("Wednesday, Jan 15, 2025")).toBe(1736920800000); expect(Date.parse("2025-01-13 00:00:00.000")).toBe(1736748000000); + expect(Date.parse("2021-04-21T15:00:00+0000")).toBe(1619017200000); // FIXME: Create a scoped time zone helper when bytecode supports the `using` declaration. setTimeZone(originalTimeZone);