向日期(javascript)添加分钟无效日期
adding minutes to a date (javascript) invalid date
我有这个函数在javascript中添加分钟到日期
function addMinutes(date, minutes) {
var DateObject = new Date(date);
var modifiedDate = DateObject.getTime() + minutes * 60000;
return date = modifiedDate;
}
脚本在我的大多数页面上完美地工作,但在当前页面上,我正在工作,我有这个日期:2014-06-07 01:00:00
这只适用于谷歌chrome..我发现IE/Safari等浏览器无法使用YYYY/MM/DD格式。
我试着用日期解析它,但这对我来说有点新,我不确定我做错了什么。
这是一个固定的原始副本,并实现了建议:
function addMinutes(date, minutes) {
var DateObject = new Date(String(date).replace(/' /g,"T")+"Z"),
modifiedDate = DateObject.getTime() +
(minutes* 60000) +
(new Date(DateObject).getTimezoneOffset()*60*1000) ;
return date = modifiedDate;
}
new Date(addMinutes("2014-06-07 01:00:00", 15)).toLocaleString();
// shows: "6/7/2014 1:15:00 AM"
这里有两个不同的问题,你应该在精神上分开:
- 解析
YYYY-MM-DD hh:mm:ss
特定格式的字符串到Date
对象。 - 增加
Date
对象的分钟数。
解析字符串
您应该意识到,当您将字符串传递给Date
构造函数时,解析行为是特定于实现的,并且不同浏览器供应商的实现各不相同。
- 通常,当出现破折号(
-
)时,值被视为UTC,当出现斜杠(-
)时,值被视为代码运行所在时区的本地时区。 - 然而,这只适用于时间不存在,或者当日期和时间组件用
T
而不是空格分隔时。(YYYY-MM-DDThh:mm:ss
) - 当使用空格分隔日期和时间组件时,一些浏览器(如Chrome)会将其视为本地时间,但其他浏览器(如IE和Firefox)会将其视为无效日期。
- 将空格替换为
T
将允许解析日期,但如果这是你所做的一切,那么Chrome将其视为UTC,而IE和Firefox将其视为本地时间。 - 如果你还添加后面的
Z
, (YYYY-MM-DDThh:mm:ssZ
),那么所有的浏览器将解析它作为UTC。 -
如果你想要一个所有浏览器都能识别为本地时间的格式,只有一个,它不是ISO标准:
YYYY/MM/DD hh:mm:ss
。因此,您可以考虑:var s = "2014-06-07 01:00:00"; var dt = new Date(s.replace(/-/g,'/'));
这个更直接:
dt.setMinutes(dt.getMinutes() + 15);
这将简单地改变Date
值以增加15分钟。不要担心溢出-如果getMinutes
返回55,设置70分钟将正确地增加1小时10分钟。
一个更好的解决方案
moments .js消除了所有关于解析变量的猜测,并为您提供了一个干净得多的API。考虑:// parse a string using a specific format
var m = moment("2014-06-07 01:00:00","YYYY-MM-DD HH:mm:ss");
// adding time
m.add(15, 'minutes');
// format the output as desired, with lots of options
var s = m.format("L h:mm:ss A");
相关文章:
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 使用年、月、日期、小时、秒格式每分钟刷新一次图像
- 如何在javascript中获得两个原始日期之间的分钟差
- 从当前日期和时间 JavaScript 中减去 5 分钟
- 如何使引导日期选择器选择当分钟视图模式:1时选择当月的最后一天而不是第一天
- 按日期分组,忽略小时/分钟/秒
- 仅显示日期时间到分钟的最简单方法是什么
- 从日期差异返回分钟数
- 向 js 日期对象添加分钟时出错
- 传递到力矩函数的日期增加1分钟
- 将JavaScript日期格式设置为小时:分钟:秒
- 日期转换为天、小时、分钟格式
- 如果日期少于或超过15分钟(如果日落或日出)
- 如何在javascript中获取日期选择器值的完整(包括小时、分钟和秒)日期格式
- 转换时间中的日期,并使用javascript在其中添加30分钟
- 如何将小时、分钟、秒设置为GMT中的日期
- 如何在使用jQuery UI日期选择器时使用小时、分钟和秒设置日期格式
- javascript将分钟添加到新日期();在使用对象之前
- 如何在1小时3分钟内将功能时间和日期转换为类似内容
- 获取以分钟为单位的当前日期时间,并将日期时间(d.m.Y H:m)转换为分钟Javascript