【发布时间】:2014-11-17 11:25:11
【问题描述】:
我是新手,想将2014-09-25T09:54:00 转换为9:54 AM Thu, 25th Sep..
有人可以给我推荐一种用 javascript 实现的方法吗?
谢谢
【问题讨论】:
标签: javascript date datetime type-conversion
我是新手,想将2014-09-25T09:54:00 转换为9:54 AM Thu, 25th Sep..
有人可以给我推荐一种用 javascript 实现的方法吗?
谢谢
【问题讨论】:
标签: javascript date datetime type-conversion
正如Phrogz所说here:
- Parse the string 转换为 JavaScript
Date对象。- Format the Date 对象随你喜欢。
另请参阅:Why does Date.parse give incorrect results? 和 How to format a JavaScript date 问题。
例子:
var myDate = new Date("2014-09-25T09:54:00")
var myString = myDate.customFormat("#h#:#mm# #AMPM# #DDD#, #D##th# #MMM#");
查看此代码here
【讨论】:
我为你的情况做了一个fiddle。
它基于这个很棒的教程here,它使格式化日期变得非常容易。
Javascript 代码:
var d_names = new Array("Sun", "Mon", "Tue",
"Wed", "Thu", "Fri", "Sat");
var m_names = new Array("Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul", "Aug", "Sept",
"Oct", "Nov", "Dec");
var d = new Date();
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 a_p = "";
var curr_hour = d.getHours();
if (curr_hour < 12)
{
a_p = "AM";
}
else
{
a_p = "PM";
}
if (curr_hour == 0)
{
curr_hour = 12;
}
if (curr_hour > 12)
{
curr_hour = curr_hour - 12;
}
var curr_day = d.getDay();
var curr_min = d.getMinutes();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var curr_hour = d.getHours();
alert((curr_hour + " : " + curr_min + " " + a_p)+ (" " + d_names[curr_day] + ", " + curr_date + sup + " "
+ m_names[curr_month] /* +" " + curr_year */));
【讨论】:
here is a great JavaScript library that handles this very well, and only 5.5kb minified.
http://momentjs.com/
It looks something like this:
moment().format('MMMM Do YYYY, h:mm:ss a'); // February 25th 2013, 9:54:04 am
moment().subtract('days', 6).calendar(); // "last Tuesday at 9:53 AM"
You can also pass in dates as a String with a format, or a Date object.
var date = new Date();
moment(date); // same as calling moment() with no args
// Passing in a string date
moment("12-25-1995", "MM-DD-YYYY");
Also has great support for languages other then English, like, Russian, Japanese, Arabic, Spanish, etc..
【讨论】: