Как мне отформатировать эту дату, чтобы предупреждение отображало дату в формате MM/dd/yyyy?
<script type="text/javascript">
var date = new Date();
alert(date);
</script>
Как мне отформатировать эту дату, чтобы предупреждение отображало дату в формате MM/dd/yyyy?
<script type="text/javascript">
var date = new Date();
alert(date);
</script>
Вы прототипируете метод, чтобы вам никогда не приходилось повторять эту раздражающую задачу:
Date.prototype.toFormattedString = function (f)
{
var nm = this.getMonthName();
var nd = this.getDayName();
f = f.replace(/yyyy/g, this.getFullYear());
f = f.replace(/yy/g, String(this.getFullYear()).substr(2,2));
f = f.replace(/MMM/g, nm.substr(0,3).toUpperCase());
f = f.replace(/Mmm/g, nm.substr(0,3));
f = f.replace(/MM\*/g, nm.toUpperCase());
f = f.replace(/Mm\*/g, nm);
f = f.replace(/mm/g, String(this.getMonth()+1).padLeft('0',2));
f = f.replace(/DDD/g, nd.substr(0,3).toUpperCase());
f = f.replace(/Ddd/g, nd.substr(0,3));
f = f.replace(/DD\*/g, nd.toUpperCase());
f = f.replace(/Dd\*/g, nd);
f = f.replace(/dd/g, String(this.getDate()).padLeft('0',2));
f = f.replace(/d\*/g, this.getDate());
return f;
};
(и да, вы можете связать эти замены, но это не для читаемости, прежде чем кто-либо спросит)
В соответствии с запросом, дополнительные прототипы для поддержки вышеуказанного фрагмента.
Date.prototype.getMonthName = function ()
{
return this.toLocaleString().replace(/[^a-z]/gi,'');
};
//n.b. this is sooo not i18n safe :)
Date.prototype.getDayName = function ()
{
switch(this.getDay())
{
case 0: return 'Sunday';
case 1: return 'Monday';
case 2: return 'Tuesday';
case 3: return 'Wednesday';
case 4: return 'Thursday';
case 5: return 'Friday';
case 6: return 'Saturday';
}
};
String.prototype.padLeft = function (value, size)
{
var x = this;
while (x.length < size) {x = value + x;}
return x;
};
и пример использования:
alert((new Date()).toFormattedString('dd Mmm, yyyy'));
Вы должны получить на нем старую школу:
Date.prototype.toMMddyyyy = function() {
var padNumber = function(number) {
number = number.toString();
if (number.length === 1) {
return "0" + number;
}
return number;
};
return padNumber(date.getMonth() + 1) + "/"
+ padNumber(date.getDate()) + "/" + date.getFullYear();
};
добавить Jquery Ui плагин на вашу страницу
alert($.datepicker.formatDate('dd M yy', new Date()));
С помощью соответствующей библиотеки вы можете интернационализировать свое приложение для всего мира всего несколькими строками кода. По умолчанию он автоматически локализует дату для локали браузера, но вы также можете определить свои собственные шаблоны:
dojo.date.locale.format(
new Date(2007,2,23,6,6,6),
{datePattern: "yyyy-MM-dd", selector: "date"}
);
// yields: "2007-03-23"
От: Форматирование дат и времени с использованием пользовательских шаблонов
YUI также поддерживает форматирование даты, которое было освещено в нескольких недавних сообщениях в блоге:
Вы удаляете функцию .toFormattedString из микрософт отлично и теперь, к сожалению, пропустили библиотеку атласа:
Date.prototype.toFormattedString = function (format) {
var dtf = Sys.CultureInfo.DateTimeFormat;
if (!format)
format = "F";
if (format.length == 1) {
switch (format) {
case "d":
format = dtf.ShortDatePattern;
break;
case "D":
format = dtf.LongDatePattern;
break;
case "t":
format = dtf.ShortTimePattern;
break;
case "T":
format = dtf.LongTimePattern;
break;
case "F":
format = dtf.FullDateTimePattern;
break;
case "M": case "m":
format = dtf.MonthDayPattern;
break;
case "s":
format = dtf.SortableDateTimePattern;
break;
case "Y": case "y":
format = dtf.YearMonthPattern;
break;
default:
throw Error.createError("'" + format + "' is not a valid date format");
}
}
var regex = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;
var ret = "";
var hour;
function addLeadingZero(num) {
if (num < 10) {
return '0' + num;
}
return num.toString();
}
function addLeadingZeros(num) {
if (num < 10) {
return '00' + num;
}
if (num < 100) {
return '0' + num;
}
return num.toString();
}
for (; ; ) {
var index = regex.lastIndex;
var ar = regex.exec(format);
ret += format.slice(index, ar ? ar.index : format.length);
if (!ar) break;
switch (ar[0]) {
case "dddd":
ret += dtf.DayNames[this.getDay()];
break;
case "ddd":
ret += dtf.AbbreviatedDayNames[this.getDay()];
break;
case "dd":
ret += addLeadingZero(this.getDate());
break;
case "d":
ret += this.getDate();
break;
case "MMMM":
ret += dtf.MonthNames[this.getMonth()];
break;
case "MMM":
ret += dtf.AbbreviatedMonthNames[this.getMonth()];
break;
case "MM":
ret += addLeadingZero(this.getMonth() + 1);
break;
case "M":
ret += this.getMonth() + 1;
break;
case "yyyy":
ret += this.getFullYear();
break;
case "yy":
ret += addLeadingZero(this.getFullYear() % 100);
break;
case "y":
ret += this.getFullYear() % 100;
break;
case "hh":
hour = this.getHours() % 12;
if (hour == 0) hour = 12;
ret += addLeadingZero(hour);
break;
case "h":
hour = this.getHours() % 12;
if (hour == 0) hour = 12;
ret += hour;
break;
case "HH":
ret += addLeadingZero(this.getHours());
break;
case "H":
ret += this.getHours();
break;
case "mm":
ret += addLeadingZero(this.getMinutes());
break;
case "m":
ret += this.getMinutes();
break;
case "ss":
ret += addLeadingZero(this.getSeconds());
break;
case "s":
ret += this.getSeconds();
break;
case "tt":
ret += (this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator;
break;
case "t":
ret += ((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator).charAt(0);
break;
case "f":
ret += addLeadingZeros(this.getMilliseconds()).charAt(0);
break;
case "ff":
ret += addLeadingZeros(this.getMilliseconds()).substr(0, 2);
break;
case "fff":
ret += addLeadingZeros(this.getMilliseconds());
break;
case "z":
hour = this.getTimezoneOffset() / 60;
ret += ((hour >= 0) ? '+' : '-') + Math.floor(Math.abs(hour));
break;
case "zz":
hour = this.getTimezoneOffset() / 60;
ret += ((hour >= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour)));
break;
case "zzz":
hour = this.getTimezoneOffset() / 60;
ret += ((hour >= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))) +
dtf.TimeSeparator + addLeadingZero(Math.abs(this.getTimezoneOffset() % 60));
break;
default:
debug.assert(false);
}
}
return ret;
}
Еще один вариант:
Не сказать, что это лучше, чем другие варианты, но мне это нравится (конечно, я не полностью непредвзято).
Попробуйте date.js, например:
<script type="text/javascript">
alert(new Date().toString('M/d/yyyy'));
</script>
Вы могли бы попробовать:
date = new Date().toLocaleDateString().split("/")
date[0].length == 1 ? "0" + date[0] : date[0]
date[1].length == 1 ? "0" + date[1] : date[1]
date = date[0] + "/" + date[1] + "/" + date[2]
Простым форматом будет:
var d = new Date() // Thu Jun 30 2016 12:50:43 GMT-0500 (Central Daylight Time (Mexico))
d.toJSON(); // "2016-06-30T17:50:43.084Z"
2017 год ответ: используйте moment.js