{"ScriptPreparationCode":null,"TestCases":[{"Name":"Moment","Code":"moment(\u00272017-09-29T11:23:40.483Z\u0027).add(\u0027MMM DD, YYYY hh:mm:ss A\u0027);","IsDeferred":false},{"Name":"Native","Code":"\r\nlet a = (date, format) =\u003E {\r\n const dateObj =\r\n typeof date === \u0022string\u0022 || typeof date === \u0022number\u0022 ? new Date(date) : date\r\n\r\n if (isNaN(dateObj.getTime())) {\r\n return \u0022Invalid Date\u0022\r\n }\r\n\r\n const day = dateObj.getDate()\r\n const month = dateObj.getMonth() \u002B 1\r\n const year = dateObj.getFullYear()\r\n let hours = dateObj.getHours() // Important: make hours mutable\r\n const minutes = dateObj.getMinutes()\r\n const seconds = dateObj.getSeconds()\r\n let ampm = hours \u003E= 12 ? \u0022PM\u0022 : \u0022AM\u0022 // Calculate AM/PM\r\n\r\n // Convert 24-hour to 12-hour format\r\n if (format.includes(\u0022hh\u0022) || format.includes(\u0022h\u0022)) {\r\n hours = hours % 12\r\n hours = hours ? hours : 12 // the hour \u00270\u0027 should be \u002712\u0027\r\n }\r\n\r\n const replacements = {\r\n YYYY: String(year),\r\n YY: String(year).slice(-2),\r\n MM: String(month).padStart(2, \u00220\u0022),\r\n M: String(month),\r\n DD: String(day).padStart(2, \u00220\u0022),\r\n D: String(day),\r\n HH: String(hours).padStart(2, \u00220\u0022),\r\n H: String(hours),\r\n hh: String(hours).padStart(2, \u00220\u0022), // 12-hour format with leading zero\r\n h: String(hours), // 12-hour format without leading zero\r\n mm: String(minutes).padStart(2, \u00220\u0022),\r\n m: String(minutes),\r\n ss: String(seconds).padStart(2, \u00220\u0022),\r\n s: String(seconds),\r\n a: ampm.toLowerCase(),\r\n A: ampm\r\n }\r\n\r\n let formattedDate = format\r\n for (const [key, value] of Object.entries(replacements)) {\r\n formattedDate = formattedDate.replace(new RegExp(key, \u0022g\u0022), value)\r\n }\r\n\r\n return formattedDate\r\n}\r\n\r\na(\u00272017-09-29T11:23:40.483Z\u0027, \u0027MMM DD, YYYY hh:mm:ss A\u0027)","IsDeferred":false}]}