Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Format date in jQuery

var date = "Fri Jan 29 2012 06:12:00 GMT+0100";

How can i show this in format 2012-01-29 06:12 ? In PHP is function ->format. In Javascript is also format, but if i try use this then i have error:

now.format is not a function

var now = new Date();
console.log(now.format("isoDateTime"));

http://jsfiddle.net/6v9hD/

I would like receive format: 2012-01-29 06:12

like image 555
Mark Fondy Avatar asked Jan 29 '12 03:01

Mark Fondy


5 Answers

Datejs.toString('yyyy-MM-dd HH:mm') should do the trick

like image 45
Mark Brackett Avatar answered Oct 15 '22 02:10

Mark Brackett


I think this could be help you:date.format.js

var now = new Date();
now.format("m/dd/yy");
// Returns, e.g., 6/09/07
// Can also be used as a standalone function
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM
// You can use one of several named masks
now.format("isoDateTime");
like image 162
helloyou Avatar answered Oct 15 '22 00:10

helloyou


This question is a duplicate (see: How to get current date in jquery?).

By modifying my solution from the other question, I got:

var d = new Date();

var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();

var output = d.getFullYear() + '-' +
    ((''+month).length<2 ? '0' : '') + month + '-' +
    ((''+day).length<2 ? '0' : '') + day + ' ' +
    ((''+hour).length<2 ? '0' :'') + hour + ':' +
    ((''+minute).length<2 ? '0' :'') + minute + ':' +
    ((''+second).length<2 ? '0' :'') + second;

See this jsfiddle for a proof: http://jsfiddle.net/nCE9u/3/

You can also enclose it within function (demo is here: http://jsfiddle.net/nCE9u/4/):

function getISODateTime(d){
    // padding function
    var s = function(a,b){return(1e15+a+"").slice(-b)};

    // default date parameter
    if (typeof d === 'undefined'){
        d = new Date();
    };

    // return ISO datetime
    return d.getFullYear() + '-' +
        s(d.getMonth()+1,2) + '-' +
        s(d.getDate(),2) + ' ' +
        s(d.getHours(),2) + ':' +
        s(d.getMinutes(),2) + ':' +
        s(d.getSeconds(),2);
}

and use it like that:

getISODateTime(new Date());

or:

getISODateTime(some_other_date);

EDIT: I have added some improvement to the function, as proposed by Ates Goral (also decreased its readability in favour of code comments).

like image 25
Tadeck Avatar answered Oct 15 '22 00:10

Tadeck


Unfortunately, in Javascript, Date does not have a format() method.

Check out http://fisforformat.sourceforge.net for some nice formatting methods.

like image 3
GreyBeardedGeek Avatar answered Oct 15 '22 01:10

GreyBeardedGeek


Use a library like Datejs or perhaps this tweet-sized implementation:

https://gist.github.com/1005948

var str = formatDate(
    new Date(),
    "{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
like image 3
Ates Goral Avatar answered Oct 15 '22 02:10

Ates Goral