datejs có thể phân tích cú pháp sau, bạn có thể muốn thử.
Date.parse('1997-07-16T19:20:15') // ISO 8601 Formats
Date.parse('1997-07-16T19:20:30+01:00') // ISO 8601 with Timezone offset
Edit: Regex phiên bản
x = "2011-01-28T19:30:00EST"
MM = ["January", "February","March","April","May","June","July","August","September","October","November", "December"]
xx = x.replace(
/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):\d{2}(\w{3})/,
function($0,$1,$2,$3,$4,$5,$6){
return MM[$2-1]+" "+$3+", "+$1+" - "+$4%12+":"+$5+(+$4>12?"PM":"AM")+" "+$6
}
)
quả
January 28, 2011 - 7:30PM EST
Edit2: Tôi đã thay đổi múi giờ của tôi để EST và bây giờ tôi đã sau
x = "2011-01-28T19:30:00-05:00"
MM = {Jan:"January", Feb:"February", Mar:"March", Apr:"April", May:"May", Jun:"June", Jul:"July", Aug:"August", Sep:"September", Oct:"October", Nov:"November", Dec:"December"}
xx = String(new Date(x)).replace(
/\w{3} (\w{3}) (\d{2}) (\d{4}) (\d{2}):(\d{2}):[^(]+\(([A-Z]{3})\)/,
function($0,$1,$2,$3,$4,$5,$6){
return MM[$1]+" "+$2+", "+$3+" - "+$4%12+":"+$5+(+$4>12?"PM":"AM")+" "+$6
}
)
trở
January 28, 2011 - 7:30PM EST
Về cơ bản
String(new Date(x))
trở
Fri Jan 28 2011 19:30:00 GMT-0500 (EST)
phần regex chỉ chuyển đổi trên chuỗi sang định dạng yêu cầu của bạn.
January 28, 2011 - 7:30PM EST
Tôi biết đây là một bài cũ, nhưng thư viện này làm những gì bạn muốn: https://github.com/csnover/js-iso8601 – Steve