使用javascript将日期字符串转换为不同的格式

时间:2011-12-01 08:28:07

标签: javascript string-formatting google-calendar-api

这就是我在使用Google Calendar API提取事件的脚本中所拥有的内容:

var datestring2 = (startJSDate.getMonth() + 1) + "/" + startJSDate.getDate();

将此附加到列表后,它会以12/2格式打印出来,而我希望它打印出Friday, Dec 2

我该怎么做?我调查了date.js,但没有运气。

3 个答案:

答案 0 :(得分:3)

Javascript中没有内置函数可以做到这一点(我认为你是在使用像PHP date()函数这样的函数)。

你可以按照其他答案的建议推出自己的解决方案,但除非你真的反对,否则date.js非常适合这一点。

您可以使用库toString()函数来获取格式化的日期字符串,如下所示:

Date.today().toString("d-MMM-yyyy");

更多信息可在DateJS API documention

中找到

答案 1 :(得分:1)

您需要以下内容:

var months = ['January', 'February', 'March', ...];
var ordinals = {1:'st', 21:'st', 31:'st', 2:'nd', 22:'nd', 3:'rd', 23:'rd'};  
var m = startJSDate.getMonth();
var d = startJSDate.getDate();
var s = months[m] + ', ' + s + (ordinals[s] || 'th');

答案 2 :(得分:0)

本文提供了一些关于打印dates in javacript

的好例子

从那里你想要这样的东西

var d_names = new Array("Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday");

var m_names = new Array("January", "February", "March", 
 "April", "May", "June", "July", "August", "September", 
"October", "November", "December");

var d = new Date();
var curr_day = d.getDay();
var curr_date = d.getDate();
var sup = "";
if (curr_date == 1 || curr_date == 21 || curr_date ==31)
{
    sup = "st";
}
else if (curr_date == 2 || curr_date == 22)
{
    sup = "nd";
}
else if (curr_date == 3 || curr_date == 23)
{
    sup = "rd";
}
else
{
   sup = "th";
}

var curr_month = d.getMonth();
var curr_year = d.getFullYear();

datestring2 = d_names[curr_day] + ", " + m_names[curr_month] + " " + curr_date + sup );

将于12月1日星期四送你