2010-10-26 2 views
0

Я использую api с конечной точкой json, чтобы захватить некоторые данные.Форматирование даты?

API-интерфейс возвращает даты, которые выглядят как: Date(1288205847730) (так основной JavaScript Object) Дата

Как преобразовать что Thu, 28 Oct


То есть обобщенный вопрос, который я мог бы работать с.

Фактический вопрос, я хочу, чтобы показать формат Thu, 28 Oct если есть более 24 часов в период до этой даты,

если есть меньше я хочу показать 13 hours 8 minutes

(примечание: времена, используемые составлены и не соответствуют времени, затраченного)

ответ

0

Лучшее, что можно обойтись без построения целой строки самостоятельно с простой JavaScript является

Date d = new Date(1288205847730); // milliseconds 
d.toLocaleDateString(); 

Если вы хотите использовать библиотеку как JQuery вы можете найти плагины, которые делают это: http://plugins.jquery.com/project/jquery-dateFormat

0

Это стандартная UNIX метка времени с миллисекунд, поэтому JavaScript может обрабатывать его непосредственно:

var timestamp = 1288205847730; 
var dateTime = new Date(timestamp); // => Wed Oct 27 2010 13:57:27 GMT-0500 (Central Daylight Time) 

Что касается форматирования, я бы предложил использовать чужой код, так как там уже много. Вот вам Google search, чтобы вы начали; первые несколько результатов должны начать вас.

+0

приветствия, я знаю об этом, мой вопрос в основном относится к форматированию даты, когда он находится в объекте. – Hailwood

+0

Я надеялся, что javascript будет иметь что-то похожее на методы даты php. – Hailwood

+0

Hailwood; Я обновил свой ответ с информацией о датах форматирования. Существует несколько хороших библиотек/плагинов, которые делают этот вид форматирования. –

0

Каждая реализация JavaScript может отличаться. Я рекомендую эту статью по адресу Working with Dates. Он описывает функцию форматирования дат в строках.

Пример:

var current_date = new Date (); 

var month_names = new Array (); 
month_names[month_names.length] = "January"; 
month_names[month_names.length] = "February"; 
month_names[month_names.length] = "March"; 
month_names[month_names.length] = "April"; 
month_names[month_names.length] = "May"; 
month_names[month_names.length] = "June"; 
month_names[month_names.length] = "July"; 
month_names[month_names.length] = "August"; 
month_names[month_names.length] = "September"; 
month_names[month_names.length] = "October"; 
month_names[month_names.length] = "November"; 
month_names[month_names.length] = "December"; 

var day_names = new Array (); 
day_names[day_names.length] = "Sunday"; 
day_names[day_names.length] = "Monday"; 
day_names[day_names.length] = "Tuesday"; 
day_names[day_names.length] = "Wednesday"; 
day_names[day_names.length] = "Thursday"; 
day_names[day_names.length] = "Friday"; 
day_names[day_names.length] = "Saturday"; 

document.write (day_names[current_date.getDay()]); 
document.write (", "); 
document.write (month_names[current_date.getMonth()]); 
document.write (" " + current_date.getDate()); 
document.write (" "); 
document.write (" " + current_date.getFullYear()); 
+0

должны дать массивный LOL тому, как эти массивы инициализируются .. .Есть просто использовать буквальную нотацию. Например, month_names = ["Январь", "Февраль", "Марш", "...и т. д.]; – Okeydoke

+0

@RueTheWhirled. Я согласен, я просто цитировал и не хотел переписывать пример. – jordanbtucker

+0

Ярмарка enuf, но я подумал, что это очень плохой пример определения значений массива – Okeydoke

0

Да, к сожалению, нет подходящих встроенных методов, таких как php. Чтобы не использовать библиотеку, которая может быть убита, вам придется создать свою собственную функцию форматирования. Jordons на правильном пути, но, пожалуйста, не инициализируют ваши массивы, как, что Хей использовать ниже

month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"]; 

Вот список доступных функций даты http://www.w3schools.com/jsref/jsref_obj_date.asp

0

получил это один из моих инструментов. Вы можете изменить прототип даты obj в соответствии с вашими спецификациями.

<script type="text/javascript" language="javascript"> 
Date.prototype.toDayDateMonth = function(){ 
    var dayname = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"] 
    var monthname = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 
    return (dayname[this.getDay()] + " " + this.getDate() + " " + monthname[this.getMonth()]) 
} 

var d1 = new Date(1288205847730); 
alert(d1.toDayDateMonth()); 
</script> 
Смежные вопросы