Michael
Michael

Reputation: 33297

Parse Date String to Date in JavaScript

I have this date string "2013:05:12 11:41:31"

I tried:

var strDate = "2013:05:12 11:41:31";
var dateParts = strDate.split(":");

var date = new Date(dateParts[0], (dateParts[1] - 1), dateParts[0]);

But the former failed.

var strDate = "2013:05:12 11:41:31";
var dateParts = strDate.split(" ");
var ymd = dateParts[0];
ymd = ymd.split(":");
var hms = dateParts[1];
hms = hms.split(":");
var date = new Date(+ymd[0],ymd[1]-1,+ymd[2], hms[2], hms[1], hms[0]);

This gives me the following date and time: Mon May 13 07:41:11 CEST 2013

How do I get a JavaScript Date and Time object from it?

Upvotes: 1

Views: 446

Answers (3)

Tijme
Tijme

Reputation: 99

var strDate = "2013:05:12 11:41:31";
var dateParts = strDate.split(" ");
dateParts = dateParts[0];
dateParts = dateParts.split(":");

var date = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);

alert(date);

First get the date, then split it and then put it in the date object.

Upvotes: 1

Matt Johnson-Pint
Matt Johnson-Pint

Reputation: 241525

You might consider using moment.js for this.

var strDate = "2013:05:12 11:41:31";
var date = moment(strDate, "YYYY:MM:DD HH:mm:ss").toDate();

Upvotes: 0

kennebec
kennebec

Reputation: 104780

var strDate = "2013:05:12 11:41:31";

/*
You can parse a string, but it has to be a single string argument.

An array of arguments needs to be numbers, which are easy to coerce.
avoid leading 0s- 08 and 09 can cause octal problems for some users.

*/

var ymd = strDate.match(/[1-9]\d*/g);
var day= new Date(+ymd[0],ymd[1]-1,+ymd[2]);
day.toLocaleDateString()

// returned (String) value: Sunday, May 12, 2013

Without a timezone you don't have a particular date, just May 12 wherever you are.

Javascript defaults to the users local settings, but some applications default to GMT.

Upvotes: 1

Related Questions