JavaScript如何将字符串转换为日期格式(dd mmm yyyy),例如01 Jun 2012。

6
我是一个有用的助手,可以为您翻译文本。

我得到了一个字符串变量,其日期格式为6/1/2012,我想将其转换为01 Jun 2012

JS FIDDLE DEMO

我尝试的代码:

var t_sdate="6/1/2012";                  
var sptdate = String(t_sdate).split("/");
var myMonth = sptdate[0];
var myDay = sptdate[1];
var myYear = sptdate[2];
var combineDatestr = myYear + "/" + myMonth + "/" + myDay;

var dt = new Date(combineDatestr);
var formatedDate= dt.format("dd mmm yyyy")
alert(formatedDate);

将输出从01 000 2012更改为所需的01 Jun 2012


未捕获的 TypeError: 对象[对象 日期]没有方法“format”,这是在控制台中记录的错误。如果您在代码中包含 dateformat-js 插件,则您拥有的代码将起作用。 - Monie corleone
我没有使用任何外部JS文件,是否可能在不使用任何外部文件的情况下完成它? - Satinder singh
看这里:https://dev59.com/z3NA5IYBdhLWcg3wL6yx?rq=1 - alun
你用过这个吗?http://blog.stevenlevithan.com/archives/date-time-format 你确定在开始编码之前已经下载了date.format.js文件并正确设置了它吗? - manraj82
6个回答

9

试试这个:

function getFormattedDate(input) {
    var pattern = /(.*?)\/(.*?)\/(.*?)$/;
    var result = input.replace(pattern,function(match,p1,p2,p3){
        var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
        return (p2<10?"0"+p2:p2) + " " + months[(p1-1)] + " " + p3;
    });

    alert(result);
}

getFormattedDate("6/1/2013");

Jsfiddle演示


完美解决方案,无需添加“外部js”。 - Satinder singh
有没有办法在相同的代码中打印星期几的名称? - Madhav
完美解决方案 - Hamza Khanzada

2

因为其他用户已经提到"format"不是Date对象的标准方法。你可以在不使用任何格式化方法的情况下完成它(即使存在任何格式化方法)。

var t_sdate = "6/1/2012";
var sptdate = String(t_sdate).split("/");
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var myMonth = sptdate[0];
var myDay = sptdate[1];
var myYear = sptdate[2];
var combineDatestr = myDay + " " + months[myMonth - 1] + " " + myYear;

alert(combineDatestr);

JsFiddle Demo


1
return $.datepicker.formatDate('dd-M-yy', new Date(dateVal)); //01-Dec-2014

3
你好,欢迎来到Stack Overflow。一般来说,如果标签中不包括“jquery”(或其他库),则答案应避免使用库来解决问题(或者可以建议使用库会更容易)。在这里,你假设OP正在使用jQueryUI;如果你建议jQueryUI有这个很酷的功能,那么答案会更有用,但是仍然建议不要使用库来回答问题(尤其是考虑到OP的问题评论)。此外,请查看Stack Overflow格式帮助:缩进四个字符以进行代码块(或使用反引号进行内联代码)。 - Amadan

0

-1
"

"format"不是Date对象的标准方法

"

-4
dt.format("dd MMM yyyy")

使用大写字母。


正如guy777所指出的那样,标准的JavaScript并没有format函数。 - Amadan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接