9

I would like to get the current date/time stamp of the server or client in ISO8601 format (ex. 31 Dec 2009, 02:53). I know that server time can be observed using PHP and brought into the DOM using jQuery $.getJson. Client side time can be recorded from the browser using javascript/jQuery. I want the time stamp to be static (not dynamic/real-time). Im php/JS newbie and would greatly appreciate your help. Thanks.

1
  • 6
    Your example in ISO 8601 format would be 2009-12-31T02:53 Commented Dec 31, 2009 at 20:23

2 Answers 2

28

In PHP 5, you can do

date("c"); //   ISO 8601 date (added in PHP 5)

see date

13

For JavaScript just create a new Date object like this

var currentDate = new Date();

and then you can construct your date in any format you want using the methods that Date provides. See this reference for the complete list of methods you can use.

In your case you could do something like this:

var months = Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

var currentDate = new Date();
var formatedDate = currentDate.getDate() + ' ' + months[currentDate.getMonth()] + ' ' + currentDate.getFullYear() + ' ' + currentDate.getHours() + ':' + currentDate.getMinutes();

As for PHP it's as simple as this:

$formatedDate = date("c");

See this page for full reference on the Date() function.

1
  • 2
    In PHP, Date("j M Y H:i") produces a date string formatted like "21 Aug 2012 23:48". This is certainly not ISO8601 format which was requested by the asker. ISO8601 format can be achieved with a simple date("c"). - @MagicMushroom
    – Adam Harte
    Commented Aug 21, 2012 at 23:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.