Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
ValidateUtcTimestamp (version2)
(version: 1)
Different methods to detect, if a timestamp is valid.
Comparing performance of:
checkNaN vs checkRound vs checkRegNaN vs checkReg31 vs checkDays vs checkFixRound
Created:
3 years ago
by:
Registered User
Jump to the latest result
Script Preparation code:
var t1 = '2019-12-31T23:59:59Z' var t2 = '2019-12-31T23:59:59.123456789Z' var t3 = '2019-12-31T24:00:00.00Z' var t4 = '2019-12-31T24:00:00.123Z' var t5 = '2019-11-31T23:59:59Z' var t6 = '2019-29-02T23:59:59Z' var t7 = '2020-29-02T23:59:59Z' var t8 = '2020-00-01T23:59:59Z' var t9 = '2020-01-00T23:59:59Z' function checkNaN(str) { return !Number.isNaN(Date.parse(str)) } function checkRound(str) { var date = Date.parse(str); if (Number.isNaN(date)) return false; var cmp = new Date(date).toISOString() var min = Math.min(str.length, cmp.length) // return str.substring(0, min - 1) === cmp.substring(0, min - 1) } var reg = /^\d{4}-(\d{2})-(\d{2})T((\d{2}):[0-5]\d:[0-5]\d)(.\d{1,9})?Z$/ var fill = '0000-00-00T00:00:00.000000000Z' function checkFixRound(str) { var len = str.length var fix = str.substring(0, len - 1) + fill.substring(len - 1, 30) var date = Date.parse(fix); if (Number.isNaN(date)) return false; var cmp = new Date(date).toISOString() return fix.substring(0, 23) === cmp.substring(0, 23) } function checkRegNaN(str) { var date = Date.parse(str) if (Number.isNaN(date)) return false return reg.test(str) } function checkReg31(str) { var match = str.match(reg) if (!match) return false var [, month, day, time, hour, millisecond] = match if (month == '00' || month > '12' || day == '00' || day > '31') return false if (time === '24:00:00' && (millisecond === undefined || /^\.0*$/.test(millisecond))) return true return hour <= '23' } var dpm = ['', '31', '29', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31'] function checkDays(str) { var match = str.match(reg) if (!match) return false var [, month, day, time, hour, millisecond] = match if (day === '00' || day > dpm[+month]) return false if (time === '24:00:00' && (millisecond === undefined || /^\.0*$/.test(millisecond))) return true return hour <= '23' }
Tests:
checkNaN
checkNaN(t1) checkNaN(t2) checkNaN(t3) checkNaN(t4) checkNaN(t5) checkNaN(t6) checkNaN(t7) checkNaN(t8) checkNaN(t9)
checkRound
checkRound(t1) checkRound(t2) checkRound(t3) checkRound(t4) checkRound(t5) checkRound(t6) checkRound(t7) checkRound(t8) checkRound(t9)
checkRegNaN
checkRegNaN(t1) checkRegNaN(t2) checkRegNaN(t3) checkRegNaN(t4) checkRegNaN(t5) checkRegNaN(t6) checkRegNaN(t7) checkRegNaN(t8) checkRegNaN(t9)
checkReg31
checkReg31(t1) checkReg31(t2) checkReg31(t3) checkReg31(t4) checkReg31(t5) checkReg31(t6) checkReg31(t7) checkReg31(t8) checkReg31(t9)
checkDays
checkDays(t1) checkDays(t2) checkDays(t3) checkDays(t4) checkDays(t5) checkDays(t6) checkDays(t7) checkDays(t8) checkDays(t9)
checkFixRound
checkFixRound(t1) checkFixRound(t2) checkFixRound(t3) checkFixRound(t4) checkFixRound(t5) checkFixRound(t6) checkFixRound(t7) checkFixRound(t8) checkFixRound(t9)
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (6)
Previous results
Fork
Test case name
Result
checkNaN
checkRound
checkRegNaN
checkReg31
checkDays
checkFixRound
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
Based on the provided benchmark results, I'll try to answer your question. However, I don't see a specific question asked in the text. It appears that you've provided a large block of text containing benchmark data, including various test names and execution per second values. If you could please provide more context or clarify what you'd like to know from this data, I'll do my best to help!
Related benchmarks:
Date.parse vs new Date vs Date String Split
lodash@4.17.15 uniq vs new Set() (w/ datetime strings)
dayjs vs luxon vs js-joda vs date-fns (comparing)
split1 vs regex
Comments
Confirm delete:
Do you really want to delete benchmark?