Я бы отделил форматирование от извлечения. Вы можете сделать так, чтобы ваша существующая функция форматирования принимала необязательный параметр, который по умолчанию равен сегодняшнему дню, чтобы вы могли вызывать его так, как вы уже делали для сегодняшней даты.
function formatTime(date) {
var dateToFormat = date || new Date();
var dd = dateToFormat.getDate();
var mm = dateToFormat.getMonth() + 1;
var yyyy = dateToFormat.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
return (yyyy + '-' + mm + '-' + dd);
}
Тогда вы можете также назвать его с сегодняшней датой минус месяц или любая другая дата
formatTime(); //will default to today
var today = new Date();
formatTime(addMonths(today,-1)); //format last month's date
Как указал РобГ в комментариях, вам нужно будет реализовать функцию addMonths, как в [ 113] Добавление месяцев к дате в JavaScript
function addMonths(date, months) {
var d = date.getDate();
date.setMonth(date.getMonth() + +months);
if (date.getDate() != d) {
date.setDate(0);
}
return date;
}
В основном Ваш класс не может быть доступным (или может действовать странно, такие как большие положительные числа, которые рассматривают как отрицательный) при использовании с некоторыми языками.NET. Я не могу сказать, каковы языки они могли бы быть.
Например, я не полагаю, что язык требуется, чтобы распознавать identifer, который начинается с подчеркивания. C# позволяет его, таким образом, Вы в безопасности там, но для других языков, "_AnIdentifier" могут быть скрыты или иметь имя, генерируемое системой.
Я столкнулся с проблемами с инструментами путаницы, генерирующими неправильный запутываемый код, когда код, который не CLS-совместим, запутывается.