在 javascript 中将字符串作为'mm/dd/yyyy'转换为'day of week, month name, year'



我以以下格式从Facebook获得Facebook用户朋友的生日:

10/07/1967 or just the day and month as 10/07

我想把它显示为"October, 07, 1967"或"October, 07"

是否有一种方法将此字符串转换为日期并在Javascript中格式化?

var MONTHS = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var myDate, myFormatDate;
var date_str ='10/07/1967';
var t = date_str.split("/");
if(t[2]) {
    myDate = new Date(t[2], t[0] - 1, t[1]);
    myFormatDate = MONTHS[myDate.getMonth()] + "," + myDate.getDate() + "," + myDate.getFullYear();
} else {
    myDate = new Date(new Date().getFullYear(), t[0] - 1, t[1]);
    myFormatDate = MONTHS[myDate.getMonth()] + "," + mydate.getDate();
}

=结果:
= myDate——日期对象
= myFormatDate——格式化日期字符串"October, 07, 1967"

要想快速完成,不用花哨的东西,你可以先分开约会

myDateParts = myDate.split("/");

然后根据零件构建新的日期:

myNewDate = new Date(myDateParts[2], myDateParts[1], myDateParts[0]);

查看出色的DateJS库。你可以做你想做的事,甚至更多……

[不,我没有以任何方式参与DateJs,只是一个非常满意的用户:-)]

使用moment.js可以将日期转换为:

moment('10/07/1967', "MM/DD/YYYY").format("MMMM, DD, YY")

其中第一部分从给定格式("MM/DD/YYYY")的字符串中获取日期,然后您只需按照您希望的格式设置日期("MMMM, DD, YY")

如果您不想使用框架,您可以将字符串传递给日期构造函数:

var birthday = new Date('10/07/1967');

构造函数也将接受没有年份的字符串,如'10/07'。然后,您可以访问每个属性,如您所愿:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

最新更新