views:

148

answers:

5

I'm looking for a way to convert a Javascript Date object to a string. I'm converting my site from Ruby to server side Javascript, and I'm looking for something analogous to strftime in Ruby, C, and many other languages.

I found plenty of simple scripts that do this kind of conversion, but I'd prefer not to include a custom implementation if there is a standard way of doing this.

I'm not using a Javascript framework. I'm using Mozilla Rhino, but would prefer to stay away from using the Java library as much as possible, to allow moving my code easily between implementations.

I want to be able to specify the format of the string, since I want to embed it in a sentence. I want to be able to insert arbitrary on's and at's, and have the full name of the day, not just it's abbreviation. So toString() won't suffice.

+3  A: 

Dates have a built-in toString:

alert(new Date().toString())

"Sat Dec 19 2009 08:23:33 GMT-0800 (Pacific Standard Time)"

Annie
+2  A: 

You could use

new Date().toString()

...to get a localized output of the date.

tangens
I should have added, that I want to be able to specify the format of the string, since I want to embed it in a sentence. I want to be able to insert arbitrary on's and at's, and have the full name of the day, not just it's abbreviation.
wvdschel
Why so many people vote this up? There's nothing flexible about this. He said he needs something **analogous**.
Josh Stodola
No it was part of his original question
Josh Stodola
+6  A: 

There is a free (and awesome) library for Javascript called Datejs that gives you all sorts of formatting and parsing capabilities (see the FormatSpecifiers documentation).

Josh Stodola
While I prefer not to use an external library, this is exactly what I need. Sad however that they label it as alpha, and not update it for 2+ years.
wvdschel
I hear you, but you could just download the latest and use the code as a reference to build your own. They have tests, too (http://www.datejs.com/test/). It's a good library that alot of people use.
Josh Stodola
Even better, start updating it yourself. You’ll have an awesome JS date library, and by improving it and making your improvements available to the rest of us, we’ll have an easier time of things, and you’ll have Internet Fame. You can’t put a price on Internet Fame.
Paul D. Waite
While the library is very nice, I decided not to use it for this specific case since it has way too many features for what I need. I am going to use it in the future for other projects, though.
wvdschel
+5  A: 

There isn’t anything built into JavaScript that allows you to format the display of a date like strftime does.

The closest is Date().toLocaleString(), which returns the date as a string formatted according to the local time zone.

Paul D. Waite
+1  A: 

You could use my JavaScript implementation of Java's SimpleDateFormat: http://www.timdown.co.uk/code/simpledateformat.php. It's a little lighter than date.js and is kept up to date as it is included in log4javascript.

Tim Down