Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
144
rated 0 times [  148] [ 4]  / answers: 1 / hits: 26938  / 12 Years ago, wed, january 9, 2013, 12:00:00

I receive from a Webservice a String with a date in this format:



yyyy-MM-ddTHH:mm:ss.fffZ


I need to convert that String with JavaScript to a normal DateTime but without using the new Date('yyyy-MM-ddTHH:mm:ss.fffZ') because I'm using an old version of JavaScript that not support that conversion. I can split that string and get the:




  • Year

  • Month

  • Days

  • Time



but how to manipulate the time zone fffZ Any suggestions?


More From » datetime

 Answers
3

I've founded the solution. Please check http://webcloud.se/log/JavaScript-and-ISO-8601/



Date.prototype.setISO8601 = function (string) {
var regexp = ([0-9]{4})(-([0-9]{2})(-([0-9]{2}) +
(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(.([0-9]+))?)? +
(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?;
var d = string.match(new RegExp(regexp));

var offset = 0;
var date = new Date(d[1], 0, 1);

if (d[3]) { date.setMonth(d[3] - 1); }
if (d[5]) { date.setDate(d[5]); }
if (d[7]) { date.setHours(d[7]); }
if (d[8]) { date.setMinutes(d[8]); }
if (d[10]) { date.setSeconds(d[10]); }
if (d[12]) { date.setMilliseconds(Number(0. + d[12]) * 1000); }
if (d[14]) {
offset = (Number(d[16]) * 60) + Number(d[17]);
offset *= ((d[15] == '-') ? 1 : -1);
}

offset -= date.getTimezoneOffset();
time = (Number(date) + (offset * 60 * 1000));
this.setTime(Number(time));
}

[#80980] Tuesday, January 8, 2013, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
darrell

Total Points: 109
Total Questions: 113
Total Answers: 113

Location: Zambia
Member since Sat, Oct 31, 2020
4 Years ago
;