Javascript 将数字日期转换为文本日期的效率
我有一个格式为MM/DD/YYYY的日期。然后我需要使用javascript将其转换为。(更确切的例子:2012年5月25日-->“2012年5月25日”)我知道如何转换日期,但问题是:Javascript 将数字日期转换为文本日期的效率,javascript,performance,date,Javascript,Performance,Date,我有一个格式为MM/DD/YYYY的日期。然后我需要使用javascript将其转换为。(更确切的例子:2012年5月25日-->“2012年5月25日”)我知道如何转换日期,但问题是: 是否有一种更有效的方法,无论是使用javascript函数还是其他方法,将MM/DD/YYYY转换为上述格式,而不是使用switch语句和串接字符串?奇怪的是,我半小时前刚刚发布了一篇文章。这是我正在使用的,但它也解析时间 // Date m/d/Y Time h:m a function parseDate(
是否有一种更有效的方法,无论是使用javascript函数还是其他方法,将MM/DD/YYYY转换为上述格式,而不是使用switch语句和串接字符串?奇怪的是,我半小时前刚刚发布了一篇文章。这是我正在使用的,但它也解析时间
// Date m/d/Y Time h:m a
function parseDate(date,time) {
date = date.split("/");
time = time.split(" ");
hm = time[0].split(':');
if (parseInt(hm[0],10) == 12) {
hm[0] = 0;
}
if (time[1] == 'pm') {
hm[0] = parseInt(hm[0],10) + 12;
} else {
hm[0] = parseInt(hm[0],10);
}
return new Date(
parseInt(date[2],10),
parseInt(date[0],10)-1,
parseInt(date[1],10),
hm[0],
parseInt(hm[1],10)
);
}
因此,您可以轻松删除时间
行,并具有以下功能
function parseDate(date) {
date = date.split("/");
return new Date(
parseInt(date[2],10),
parseInt(date[0],10)-1,
parseInt(date[1],10)
);
}
通过访问阵列,您可以做到这一点
var monthArray = ['January', 'February', ... , 'December'];
var date = "05/25/2012";
var dateParts = date.split('/');
var convertedDate = monthArray[parseInt(dateParts[0], 10)] + " " + dateParts[1] + ", " + dateParts[2];
您可能会在以下内容中找到和功能:
var date = $.datepicker.parseDate('mm/dd/yy', '05/25/2012');
$.datepicker.formatDate('MM d yy', date);
这完全取决于你如何定义“高效”:
- 代码密度这是有效的imho
- 速度和性能没有线索
- 本地化?-例如,
$(选择器).datepicker($.datepicker.regional['fr'])代码>*
parseInt(string[,radix])
函数时,始终添加radix
参数,因为所有以“0”开头的字符串都将被解释为八进制(除非以“0x”开头,否则将被解释为十六进制)。参考:很好的代码,类似于我已经拥有的。但我正在寻找一些东西,以字符串形式给出实际日期,如“2012年3月20日”。如果有内置函数,我想使用内置函数,而不是对该月的数字运行switch语句。@matsev从现在起我肯定会这样做。提交后我立即返回并编辑了它。事实上,我刚刚了解到这一点。比switch语句更有效。如果找不到库函数,我将使用它。只需一个编辑:var convertedDate=monthArray[parseInt(dateParts[0],10)-1]+。。。如果没有'-1',它将在下个月发出。否则这就行了。