在Javascript中将yyyy-mm-dd转换为其他日期格式

时间:2011-12-24 01:06:16

标签: javascript date

我正在尝试使用Javascript将“1983-24-12”转换为1983年12月24日。

我们在Javascript中是否有任何现成的函数,这使得此转换与Java中的simpledateformat相同?

我试图避免在数组中花费数月然后进行操作。

我的代码如下。

//For Date Format
    months = ["", "January", "February", "March", "April", "May", "June",           "July", "August", "September", "October", "November", "December"];     
    dob = responseObj.data.personDetail.birthDate.split('-');   
    month = months[dob[1]];
    responseObj.data.personDetail.birthDate = month +" "+dob[2] +","+dob[0];

请帮助。

4 个答案:

答案 0 :(得分:7)

如果您不想使用图书馆,为什么不只是拆分日期字符串并编制您自己的日期?

var str_date = "1983-24-12",
    arr_date = str_date.split('-'),
    months   = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

alert(months[arr_date[2]] + ' ' + arr_date[1] + ', ' + arr_date[0]);

演示:http://jsfiddle.net/9xeBZ/

JavaScript包含Date()对象:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

问题是JavaScript Date()对象不会返回一个月的字符串表示形式。所以在某些时候你必须自己创造这种逻辑。您发布的格式(“1983-24-12”)也是使用Date()对象解析的格式无效。

答案 1 :(得分:2)

这可能会有所帮助:Date Format Conversion

答案 2 :(得分:2)

如果我理解你的话,那么您正在尝试重新格式化您的日期,快速谷歌搜索提出了http://blog.stevenlevithan.com/archives/date-time-format这个看起来像您想要的日期。

答案 3 :(得分:2)

编辑:既然你提到你正在使用Sencha,你可以使用Ext.Date添加高级日期格式和解析:

  

一组处理日期的有用静态方法请注意,如果需要并加载Ext.Date,它会将所有方法/属性复制到此对象以方便使用。

您可以在此处找到更多信息:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Date

您可能会觉得有用的两种方法是parseformat


或者,JQuery UI的DatePicker小部件实现了一个非常强大的日期解析器和格式化程序,可以在您自己的代码中使用,如下所示:

var parsedDate = $.DatePicker.parseDate("yy-m-d", "1983-24-12");
var outputString = $.DatePicker.formatDate("MM d, yy", parsedDate);
// outputString = "December 24, 1983"

此处的相关功能为parseDateformatDate

但是有一个问题,要使用它,你必须在代码中包含JQuery和JQuery UI作为脚本,这可能对你需要的东西有点过分,而其他答案可能更适合你的需求