2016-07-12 2 views
0

У меня есть следующий Javascript, чтобы отобразить дату на странице, однако я хотел добавить суффиксы «th», «st» и «rd» после каждого номера даты (например, «6-й»).Добавление суффиксов дат

Есть ли способ сделать это со следующим кодом, который у меня есть в настоящее время?

<script language="Javascript"> 
<!-- 

// Array of day names 
var dayNames = new Array("You're working today? It's Sunday","Hello, it's Monday","Hello, it's Tuesday","Hello, it's Wednesday", 
    "Hello, it's Thursday","Hello, it's Friday","You're working today? It's Saturday"); 

// Array of month Names 
var monthNames = new Array(
"January","February","March","April","May","June","July", 
"August","September","October","November","December"); 

var now = new Date(); 
document.write (dayNames[now.getDay()] + ", " + 
now.getDate() + " " + 
monthNames[now.getMonth()] + " " + 
now.getFullYear() + "."); 
// --> 
</script> 

Заранее спасибо

+0

Он ответил прежде, чем здесь: http://stackoverflow.com/a/13627586/2362973 – mrgoos

+0

Есть [* много подобных вопросов *] (http://stackoverflow.com/search?q=%5Bjavascript%5D+add+ordinal). – RobG

ответ

0

Вы можете использовать moment.js как это:

var dt = new Date(); 
moment(dt).format('Do') // "12th" 
+0

Ответ не должен зависеть от библиотеки, которая не помечена или запрошена в OP. Требование библиотеки добавить порядковый номер в число серьезных перебор. – RobG

0

Там другие решения, если вы не хотите использовать библиотеку. Выполнение быстрого поиска в StackOverflow привело меня к этому answer. Вам необходимо включить одну из этих функций в ваш код, взяв значение от now.getDate().

0

Вы используете dayNames[now.getDay()], что ключом, который вы ищете, является now.getDay(), что не основано на нуле. Я предлагаю вам переместить ваше значение в воскресенье в конце массива и использовать dayNames[now.getDay() - 1] для большей ясности.

На эту тему, вы можете проверить этот ответ для решения: Convert date day (05/12/2011 to 12th)