如何格式化此日期,以便警报以MM / dd / yyyy格式显示日期?
<script type="text/javascript">
var date = new Date();
alert(date);
</script>
答案 0 :(得分:32)
您对方法进行了原型设计,因此您再也不必执行这项恼人的任务了:
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'));
答案 1 :(得分:7)
你必须上学:
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();
};
答案 2 :(得分:4)
将Jquery Ui插件添加到您的页面
alert($.datepicker.formatDate('dd M yy', new Date()));
答案 3 :(得分:1)
使用合适的库,您只需几行代码即可将整个世界的应用程序国际化。默认情况下,它会自动本地化浏览器区域设置的日期,但您也可以定义自己的模式:
dojo.date.locale.format(
new Date(2007,2,23,6,6,6),
{datePattern: "yyyy-MM-dd", selector: "date"}
);
// yields: "2007-03-23"
答案 4 :(得分:1)
YUI还提供对日期格式的支持,最近的一系列博客文章对此进行了介绍:
答案 5 :(得分:1)
你从微软中删除了.toFormattedString函数,现在很遗憾地错过了atlas库:
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;
}
答案 6 :(得分:0)
答案 7 :(得分:0)
尝试date.js,例如:
<script type="text/javascript">
alert(new Date().toString('M/d/yyyy'));
</script>
答案 8 :(得分:0)
你可以尝试:
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]
答案 9 :(得分:0)
一种简单的格式是:
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"
答案 10 :(得分:0)
2017年答案:使用moment.js