日期格式转换脚本
Date format convert javascript
>我正在尝试使用 javascript 将"July 24 2013"转换为"DD-MM-YYYY",但我不断得到和错误。
我正在使用new Date('July 24 2013').format("DD-MM-YYYY");
我错过了什么?
Date
对象没有.format()
方法。如果您积极使用日期和时间,我建议您使用 MomentJS 库。它具有许多有用的功能来处理时间和日期。
例如:moment('July 24 2013', 'MMMM D YYYY').format('MMMM D YYYY, h:mm:ss a');
我强烈建议使用momentjs!
moment('July 24 2013').format("DD-MM-YYYY");
// => "24-07-2013"
就这么简单!
Bellow 是基于 Java 日期格式的简单、可移植、纯 JS 实现:
function date_format( d, p ) {
var pad = function (n, l) {
for (n = String(n), l -= n.length; --l >= 0; n = '0'+n);
return n;
};
var tz = function (n, s) {
return ((n<0)?'+':'-')+pad(Math.abs(n/60),2)+s+pad(Math.abs(n%60),2);
};
return p.replace(/([DdFHhKkMmSsyZ])'1*|'[^']*'|"[^"]*"/g, function (m) {
l = m.length;
switch (m.charAt(0)) {
case 'D': return pad(d.getDayOfYear(), l);
case 'd': return pad(d.getDate(), l);
case 'F': return pad(d.getDayOfWeek(i18n), l);
case 'H': return pad(d.getHours(), l);
case 'h': return pad(d.getHours() % 12 || 12, l);
case 'K': return pad(d.getHours() % 12, l);
case 'k': return pad(d.getHours() || 24, l);
case 'M': return pad(d.getMonth() + 1, l );
case 'm': return pad(d.getMinutes(), l);
case 'S': return pad(d.getMilliseconds(), l);
case 's': return pad(d.getSeconds(), l);
case 'y': return (l == 2) ? String(d.getFullYear()).substr(2) : pad(d.getFullYear(), l);
case 'Z': return tz(d.getTimezoneOffset(), ' ');
case "'":
case '"': return m.substr(1, l - 2);
default: throw new Error('Illegal pattern');
}
});
};
console.log( date_format( new Date(), 'yyyy.mm.dd kk:MM:ss Z' ) );
console.log( date_format( new Date(), 'MM/dd/yyyy HH:mm:ss' ) );
以上代码基于 http://llamalab.com/js/date/Date.js (LGPL(
JavaScript 中没有 Data.prototype.format 函数。
您最好查看用于本地化日期的开源选项。 我取得了成功
- 全球化:https://github.com/jquery/globalize#dates
还有:
- 瞬间:http://momentjs.com/timezone/
- 日期JS: https://code.google.com/p/datejs/
为了简化一点...问题是因为浏览器用于存储日期的格式并不总是相同的(并且不允许传递给 Date 构造函数的格式(。这是标准允许的,需要的是浏览器可以解析自己生成的格式(参见§15.9.4.2(。
通常,直接使用日期格式不是一个好主意,不仅因为特定于浏览器的实现,还因为全球化(对于具有虚拟全球受众的Web应用程序尤其如此(。
您确定每个浏览器都会读取的唯一格式是YYYY-MM-DDTHH:mm:ss.sssZ
(参见 §15.9.1.15(,因此在您的情况下,您应该将自定义解析/格式更改为该格式。
看看这个和这个帖子 SO 上的其他细节(或这个关于日期的小教程(。
如果您跨浏览器和区域设置使用日期,我的建议是使用一个好的库来抽象所有这些细节。我发现这个非常强大且易于使用(它取代了标准的Date
函数,因此您甚至可能不需要更改一行代码(。
- 我想在Iframe Javascript PHP的帮助下,将单个ajax上传器脚本转换为多个上传器
- 将coffee脚本转换为简单的扩展
- 谷歌应用程序将电子邮件表单脚本转换为PDF格式,但希望清除一些单元格
- 将所有 jQuery 脚本转换为实时脚本
- 将 mysql 脚本转换为 sqlite 脚本
- 将 JavaScript Http Upload 脚本转换为 Curl 命令
- 使用脚本转换表中的列值
- 如何使用 Java 脚本转换鼠标事件和触摸事件
- 如何将此脚本转换为从 jquery 事件调用
- 如何将此咖啡脚本转换为 js/jquery
- 在Joomla 2.5中将简单脚本转换为模块需要帮助来修复Java
- Python迷宫生成脚本-转换为Javascript:数学差异
- 将AJAX脚本转换为jQuery语法
- 当JQuery事件发生时,通过加载跟踪URL将跟踪脚本转换为使用JQuery
- 将java脚本转换为vb脚本
- 通过将jquery脚本转换为函数来调用它
- 如何将用户脚本转换为Firefox插件
- Python脚本转换为Chrome扩展
- 我想把php脚本转换成js.请
- Java脚本转换json数据