Порядковый формат даты в Google Scripts (th, rd, st, nd) - PullRequest
0 голосов
/ 26 мая 2018

Я искал повсюду здесь простую функцию для преобразования даты (в моем случае, заданной в форме Google) в порядковый формат, используемый в контрактах:

, то есть 25-го мая мая 2018 года

Был один человек, который задал вопрос, и кто-то пометил его как дубликат, а затем сослался на другой ответ, который вообще не ответил на его вопрос!Так что для тех из вас, кому это нужно - вот простая функция:

function ordinal(date) {
  var d = date.getDate();
  var month = new Array ();
  month[0] = "January";
  month[1] = "February";
  month[2] = "March";
  month[3] = "April";
  month[4] = "May";
  month[5] = "June";
  month[6] = "July";
  month[7] = "August";
  month[8] = "September";
  month[9] = "October";
  month[10] = "November";
  month[11] = "December";

  var m = month[date.getMonth()];
  var y = date.getYear();
  return d + (d > 0 ? ['th', 'st', 'nd', 'rd'][(d > 3 && d < 21) || d % 10 > 3 ? 0 : d % 10] : '') + " day of " + m +", " + y;
}

1 Ответ

0 голосов
/ 26 мая 2018

Часто разработчики, плохо знакомые с платформой, в конечном итоге изобретают велосипед;реализованная логика уже предоставлена ​​(исходя из опыта).Не существует готового решения для добавления этих суффиксов (st, nd, rd, th), однако, в вашем случае вы могли бы использовать метод Utilities.formatDate(), чтобы немного упростить ситуацию:

function getOrdinal(date) {
    var d = date.getDate(),
        suffix = ['th', 'st', 'nd', 'rd'][(d > 3 && d < 21) || d % 10 > 3 ? 0 : d % 10];

    return Utilities.formatDate(date, Session.getScriptTimeZone(), "d'" + suffix + " day of' MMMM, yyyy");
}

Небольшой совет, всегда начинайте свой поиск с канонических источников.Это займет некоторое время, но если вы намерены регулярно использовать скрипт Google Apps (или любой другой язык), лучше ознакомиться с официальной документацией и ссылками.

Вот ссылкак официальной справочной документации по скриптам приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...