rogerlsmith
rogerlsmith

Reputation: 6786

JavaScript Date / Time Conversion

I have dates and times in a database in the following format:

2011-08-02T00:00:00-00:00

What is the easiest way to convert them to something like 8-2-2011?

Thanks,

Upvotes: 0

Views: 2322

Answers (4)

Zirak
Zirak

Reputation: 39808

var date = "2011-08-02T00:00:00-00:00".split('T')[0].split('-').reverse();
var month = date[0], day = date[1];

//remove 0 in the beginning if not necessary
if (+month < 10) {
    month = month.slice(1);
}
if (+day < 10) {
    day = day.slice(1);
}

//swap between the two
date[0] = day;
date[1] = month;

date.join('-');

Or you can use the boring Date way.

Upvotes: 1

david
david

Reputation: 4278

one way could be to split up the date part

var date = "2011-08-02T00:00:00-00:00";

var dpart = (date.substr(0,10)).split("-");

var odate = parseInt(dpart[1],10)+"-"+parseInt(dpart[2],10)+"-"+dpart[0];

Upvotes: 0

Peter O.
Peter O.

Reputation: 32878

Here's the code:

x=new Date("2011-08-02T00:00:00-00:00")
str=(x.getUTCMonth()+1)+"-"+x.getUTCDate()+"-"+x.getUTCFullYear()

Or:

x="2011-08-02T00:00:00-00:00"
x=/^(\d+)\-(\d+)\-(\d+)/.exec(x)
if(x){
   str=(parseInt(x[2],10)+"-"+parseInt(x[3],10)+"-"+parseInt(x[1],10))
}

Upvotes: 1

Jacob Mattison
Jacob Mattison

Reputation: 51052

This format will work in the Javascript Date constructor:

var d = new Date("2011-08-02T00:00:00-00:00");
var month = d.getUTCMonth() + 1;
var day = d.getUTCDate();
var year = d.getUTCFullYear();

var output = month + "-" + day + "-" + year;

Upvotes: 0

Related Questions