Время записи Javascript в определенном формате

Я использую Javascript вместе с Date.js, и мне нужно перевести строковые представления времени.

Я начинаю со времени в этом формате:

3:00am
2:30pm 
11:00am

... и нужно поместить их в этот формат:

03:00:00
14:00:00
11:00:00

Я думал начать с Date.parse(), а затем распечатать часы, минуты и секунды. Но мне было интересно, есть ли более элегантный способ сделать это, например, что-то вроде Date.format("HH:MM:SS")

Как это сделать?

Спасибо!

Изменить::::

Похоже, вы можете использовать спецификаторы формата с Date.js: http://code.google.com/p/datejs/wiki/FormatSpecifiers

Date.parse("3:00am").toString("HH:mm:ss");

person Chris Dutrow    schedule 11.07.2011    source источник
comment
О, вы научились работать с разбором! Хороший. Я мог сделать это только с помощью parseExact. Вы ответили на свой вопрос.   -  person Ray Toal    schedule 12.07.2011
comment
У меня были проблемы с загрузкой неправильной версии Date.js. Вы должны загрузить его через эту конкретную область, которой нет на основном сайте, чтобы получить самую последнюю версию: datejs.googlecode.com/svn/trunk/build/date-en-US.js   -  person Chris Dutrow    schedule 12.07.2011


Ответы (2)


Я считаю, что это ответ, который ищет ОП. :-)

<html>
  <head>
    <title>Show US Times in 24h form with Date.js</title>
  </head>
  <body>
    <script type="text/javascript" src="date.js"></script>  
    <script>
      var d = Date.parseExact("2:30pm", "h:mmtt");
      document.write(d.toString("HH:mm:ss"));
    </script>
  </body>
</html>

Информация о спецификаторах формата здесь: http://code.google.com/p/datejs/wiki/FormatSpecifiers

person Ray Toal    schedule 12.07.2011

Ответ на все ваши вопросы

<script type="text/javascript">
<!--

var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var curr_sec = d.getSeconds();

document.write(curr_hour + ":" + curr_min + ":" + curr_sec);

//-->
</script>
person Jules    schedule 11.07.2011
comment
Возвращает ли это часы и минуты, всегда используя символы? (02 вместо 2) - person Chris Dutrow; 12.07.2011
comment
Это не использует Date.js, не анализирует исходную строку и не дополняет однозначные минуты и секунды. - person Ray Toal; 12.07.2011
comment
Но дает четкое представление о том, как это сделать. Отсюда довольно легко продолжить и добавить некоторые функции, чтобы добавить начальный ноль, когда это необходимо, например.. if (curr_min < 10) { curr_min = '0' + curr_min; } и т. д. - person Jules; 12.07.2011
comment
+1 за поиск ответа самостоятельно, прежде чем обращаться за помощью - person Chains; 12.07.2011