|
I cant understand how people are using javascript dates with node.js in production systems. I tried using node some time back and the issues with dates is what made me run from it like hell. Even specialized datetime handling libraries like Moment.js and Date.js are almost useless.
|
|
|
|
|
Happily I'm not using node. I'm just using the javascript Date object, and that only to fix the damn date handling. So now I have code like this:
function fixupDates(data, view) {
for (var i = 0; i < data.length; i++) {
var row = data[i]
for (var j = 0; j < view.fields.length; j++) {
var field = view.fields[j]
if (field.type == "date") {
var dateval = row[field.name]
if (dateval.length >= 10) {
var year = dateval.substring(0, 4)
var month = dateval.substring(5, 7)
var day = dateval.substring(8, 10)
row[field.name] = new Date(year, month - 1, day)
}
}
}
}
}
Which as to walk through every f*cking row of the dataset that I just AJAX loaded!
Thankfully, because I use the same library for loading grid data and because I have the view definition in the javascript, I've only needed to fix this once and it fixes all my grids where a data field is rendered (BTW, I'm using jqxGrid)
Marc
|
|
|
|
|
You know, you can extend/replace JavaScript objects - even Date...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Endorse your pain/angry.
The biggest fault is just the weird language and the pseudo-APIs behind it. That would be acceptable in a kids learning world, but we'll pay all this JavaScript spreading in the (near) future...and will be a boomerang!
.Net and C# forever...
|
|
|
|
|
So Marc, tell me, when's the last time you got laid?
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: So Marc, tell me, when's the last time you got laid?
Recently. No need to be more explicit, haha.
Marc
|
|
|
|
|
|
Hahaha. As serendipity has it, I just last night bought JavaScript: The Good Parts. I wonder what Crockford's going to make of The Date Thing.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
|
|
|
|
|
Not that I use it, but I thought arrays in VB were 1-based, and people hate it for that. Well, that and many other reasons. Are you advocating we should follow the VB model?
month[0] being January makes sense to me. That said, an enum defining month names starting at 1 also make sense to me.
I see no way of ever reconciliating these sort of idiosyncrasies, unfortunately.
|
|
|
|
|
That would be somewhat OK, if it were consistent, in which case the first day of the month would be day 0, and the first year of a century would be 0 + the century. But it is not consistent and, by convention, months and days are already numbers starting with 1. Why confuse things just because you are a programmer who likes to put the months in an array starting with a zero offset? In that case, that offset should be calculated and used internally, not by forcing everyone else to add 1 to the month everywhere it is used. I agree with the poster that some common standards were made by people exhibiting ID-10-T errors.
|
|
|
|
|
I hear you, but ultimately, a month number is not an array index. The dumb thing is using them as such...'cuz then, somebody at some point has no choice but to add or subtract 1 because we're dealing with different "currencies".
|
|
|
|
|
I agree. That is why I also agree with the original poster that a JavaScript month should not be starting with zero. I was just trying to say that, if one is being aggravatingly dumb, at least be consistent about it. I wonder just who it was who made the decision to make months start with zero, and what he is doing now. Is he sitting in an easy chair with his tea and crumpets, musing about his wonderful history, or is he hiding in a safehouse in fear from those of us who didn't like his work.
|
|
|
|
|
He's probably fixing broken VB code.
At least that's the punishment I'd come up with.
|
|
|
|
|
Wasn't Javascript born out of C/C++? Then, that is why lists and arrays begin at 0 and not 1.
|
|
|
|
|
Y...yes...?
I don't think I was questioning this.
|
|
|
|
|
The method is deprecated, but try mydate.getYear() sometime
TTFN - Kent
|
|
|
|
|
My favorite Javascript date "feature" is where Jan 32, 2015 rather than throwing an error will just assume you meant Feb 1, 2015.
|
|
|
|
|
Perhaps you don't like zero-base array. Perhaps Pascal/Delphi suits you better? It is the only language with 1 base array I know off.
|
|
|
|
|
Isn't BASIC 1-index too?
And I'm quite happy with 0-based arrays. However, a month number is not an index. It is a human-readable abstraction starting with "1". Therefore, when I ask for the month in Javascript, I do NOT expect to get 0 for January.
By Javascript's logic, the first day of the month should be 0!!!!
Marc
|
|
|
|
|
It's nice when the boss's boss takes you out for breakfast. One of the benefits of being the first two people at the office.
|
|
|
|
|
better if it is the boss's wife !! (OH WAIT!!! )
I'd rather be phishing!
|
|
|
|
|
The boss and the boss's boss can't be female? They weren't.
|
|
|
|
|
You don't like the wife of a female boss's boss, do you?
|
|
|
|
|
One step towards becoming your boss' peer!
|
|
|
|
|
There ain't no such thing as a free breakfast!
|
|
|
|