Dee*_*epu 2 javascript jquery date
我从数据库获取值是时间戳.我需要将其转换为mm/dd/yyyy H:i:s使用javascript.我尝试了以下代码.但它没有工作firefox/ie.But它的工作在chrome..how来解决它.
function formatDate(value){
if(value){
Number.prototype.padLeft = function(base,chr){
var len = (String(base || 10).length - String(this).length)+1;
return len > 0? new Array(len).join(chr || '0')+this : this;
}
var d = new Date(value),
dformat = [ (d.getMonth()+1).padLeft(),
d.getDate().padLeft(),
d.getFullYear()].join('/')+
' ' +
[ d.getHours().padLeft(),
d.getMinutes().padLeft(),
d.getSeconds().padLeft()].join(':');
return dformat;
}
Run Code Online (Sandbox Code Playgroud)
我在firefox中获得NaN/NaN/NaN/NaN/NaN/NaN和ie.Any帮助非常感谢
您的代码缺少尾随}.如果您将其格式化得更好,您会看到:
function formatDate(value){
if(value){
Number.prototype.padLeft = function(base,chr){
var len = (String(base || 10).length - String(this).length)+1;
return len > 0? new Array(len).join(chr || '0')+this : this;
}
var d = new Date(value),
dformat = [ (d.getMonth()+1).padLeft(),
d.getDate().padLeft(),
d.getFullYear()].join('/')+
' ' +
[ d.getHours().padLeft(),
d.getMinutes().padLeft(),
d.getSeconds().padLeft()].join(':');
return dformat;
}
}
Run Code Online (Sandbox Code Playgroud)
它现在在Firefox中运行良好.
请注意,Number.prototype.padLeft每次调用此函数时都要定义.最好将其移出功能体.
编辑根据我的评论,你失败的原因是该Date对象只接受某些格式的字符串.此外,我发现你的函数只是改变字符串的格式:你真的不需要烦扰日期,而只是对你的输入做字符串操作:
var formatDate = function(dateString) {
// Convert 'yyyy-mm-dd hh:mm:ss' to 'mm/dd/yyyy hh:mm:ss'
return dateString.replace(/^(\d{4})-(\d{2})-(\d{2})/, '$2/$3/$1');
};
Run Code Online (Sandbox Code Playgroud)
更容易!
| 归档时间: |
|
| 查看次数: |
9209 次 |
| 最近记录: |