Last active
October 30, 2024 18:31
-
-
Save WebReflection/6076a40777b65c397b2b9b97247520f0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://webreflection.medium.com/using-the-input-datetime-local-9503e7efdce | |
Date.prototype.toDatetimeLocal = | |
function toDatetimeLocal() { | |
var | |
date = this, | |
ten = function (i) { | |
return (i < 10 ? '0' : '') + i; | |
}, | |
YYYY = date.getFullYear(), | |
MM = ten(date.getMonth() + 1), | |
DD = ten(date.getDate()), | |
HH = ten(date.getHours()), | |
II = ten(date.getMinutes()), | |
SS = ten(date.getSeconds()) | |
; | |
return YYYY + '-' + MM + '-' + DD + 'T' + | |
HH + ':' + II + ':' + SS; | |
}; | |
Date.prototype.fromDatetimeLocal = (function (BST) { | |
// BST should not be present as UTC time | |
return new Date(BST).toISOString().slice(0, 16) === BST ? | |
// if it is, it needs to be removed | |
function () { | |
return new Date( | |
this.getTime() + | |
(this.getTimezoneOffset() * 60000) | |
).toISOString(); | |
} : | |
// otherwise can just be equivalent of toISOString | |
Date.prototype.toISOString; | |
}('2006-06-06T06:06')); |
Don't apologize for a clean object-oriented proposal, this method belong on a Date instance, not an ugly "utility" function !
nice work!
Thanks for your help
Thanks a lot. Saved my sanity
thanks!
toDatetimeLocal
won't work if you pass it a Date object with a year earlier than 1,000, since it won't pad the start with 0s.
@Olimarrex I am not sure anyone needs that in 2022 but it's easy to solve too?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
it doesn't have to be a
Date.prototype
, it would just work as well asfunction toDatetimeLocal(date) ...
but you've got the point.