Преобразование строки даты в другой формат с помощью JavaScript - PullRequest
1 голос
/ 01 декабря 2011

Это то, что у меня есть в скрипте, который извлекает события из API Календаря Google:

var datestring2 = (startJSDate.getMonth() + 1) + "/" + startJSDate.getDate();

После того, как я добавлю это в список, он будет распечатан в формате 12/2, а я хочу, чтобы он распечатал Friday, Dec 2.

Как я могу это сделать? Я посмотрел на date.js, но не повезло.

Ответы [ 3 ]

3 голосов
/ 01 декабря 2011

В Javascript нет встроенной функции, которая могла бы сделать это (я полагаю, что вы ищете что-то вроде date() функции PHP).

Вы, конечно, можете свернуть свое собственное решение, как предлагали другие ответы, ноЕсли вы действительно не против, date.js отлично подходит для этого.

Вы можете использовать функцию библиотек toString(), чтобы получить отформатированные строки даты, например:

Date.today().toString("d-MMM-yyyy");

Дополнительную информацию можно найти в документации DateJS API .

1 голос
/ 01 декабря 2011

Вам нужно что-то вроде:

var months = ['January', 'February', 'March', ...];
var ordinals = {1:'st', 21:'st', 31:'st', 2:'nd', 22:'nd', 3:'rd', 23:'rd'};  
var m = startJSDate.getMonth();
var d = startJSDate.getDate();
var s = months[m] + ', ' + s + (ordinals[s] || 'th');
0 голосов
/ 01 декабря 2011

Эта статья содержит несколько замечательных примеров распечатки дат в javacript

И оттуда вы хотите что-то вроде этого

var d_names = new Array("Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday");

var m_names = new Array("January", "February", "March", 
 "April", "May", "June", "July", "August", "September", 
"October", "November", "December");

var d = new Date();
var curr_day = d.getDay();
var curr_date = d.getDate();
var sup = "";
if (curr_date == 1 || curr_date == 21 || curr_date ==31)
{
    sup = "st";
}
else if (curr_date == 2 || curr_date == 22)
{
    sup = "nd";
}
else if (curr_date == 3 || curr_date == 23)
{
    sup = "rd";
}
else
{
   sup = "th";
}

var curr_month = d.getMonth();
var curr_year = d.getFullYear();

datestring2 = d_names[curr_day] + ", " + m_names[curr_month] + " " + curr_date + sup );

даст вам четверг, 1 декабря

...