用JavaScript格式化日期
Format the date in JavaScript?
我给了结束日期2014-07-27 12:00 am以下代码,它生成2014年7月28日00:00:00 GMT+0530(印度标准时间),但我想显示结束日期像2014-07-28 12:00 am。我该怎么做呢?
endDate = "2014-07-27 12:00";
alert(endDate);
if (endTime == "12:00 AM") {
endDate = new Date(endDate);
// add a day
endDate.setDate(endDate.getDate() + 1);
}
字符串:
'2014-07-27 12:00 AM'
不符合ES5中指定的格式,因此浏览器如何处理它完全取决于实现。也许有些人会把它当作UTC,有些人会把它当作本地的,还有一些人根本不会解析它。
您可以自己解析字符串,假设您希望将其视为本地时间:
// Parse a string like 2014-07-27 12:00 AM as a local date and time
function parseISOLike(s) {
s = s.split(/[- :]/);
var ap = s[5].toLowerCase();
var h = s[3]%12 + (ap == 'am'? 0 : 12);
return new Date(s[0], --s[1], s[2], h, s[4]);
}
一旦你有了一个有效的Date对象,你就可以使用Date方法任意格式化它,例如
/* Return time in 12hr format for given Date object, or
** current system time if d is falsey
** e.g. 12:00 AM, 01:15 PM
** If secs is true, also show seconds
** e.g. 12:00:00 AM, 01:15:23 PM
*/
function to12hrTime(d, secs) {
d = d || new Date();
var hrs = d.getHours();
// Pad single digit numbers with a leading zero
var pad = function(n){return (n<10?'0':'')+ +n};
return pad(hrs%12 || 12) + ':' + pad(d.getMinutes()) +
(secs? ':' + pad(d.getSeconds()) : '') +
' ' + (hrs<12? 'AM':'PM');
}
// Format date as YYYY-MM-DD hh:mm AP
function formatDate(d) {
function z(n){return (n<10?'0':'') + n;}
return d.getFullYear() + '-' + z(d.getMonth() + 1) + '-' +
z(d.getDate()) + ' ' + to12hrTime(d);
}
console.log(formatDate(parseISOLike('2014-07-27 1:00 pm'))); // 2014-07-27 01:00 PM
有各种各样的库可以帮助格式化。没有时区缩写的标准,也没有可靠的方法来确定它在javascript中可能是什么,但是一些库做得很好。
相关文章:
- 将字符串转换为格式化日期
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 如何将日期字符串视为格式化数组[EYEAR,MONTH,DAY]
- 如何将日期拆分为格式化的日期和时间
- 从Parse.com返回的格式化日期
- 如何用javascript格式化日期
- 格式化momentjs日期时间
- 无法格式化keystone.js中的嵌套日期字段
- 生成并格式化当前日期和时间
- 在瞬间格式化日期.js给出 1/1/2016
- Javascript:根据当前日期检查格式化的日期值
- Safari浏览器中的格式化日期不正确
- 格式化 JSON 日期
- JS中的PHP日期格式化
- 从RSS馈送到“”的日期格式化程序;时间.ago”;
- 使用javascript进行日期格式化在IE10上不起作用
- 日期格式化程序函数给我一个负数
- Javascript日期格式化星期五六月21 00:00:00 UTC+0100 2013到iso 8601(2013-
- 日期格式化熊猫- Python
- 是否有一个jQuery日期格式化插件,可以处理多个时区和适当的夏令时