JavaScript返回时间不正确
我正在开发移动应用程序,并使用以下日期字符串构造日期对象。但是我需要输出的时间字符串比输入的时间奇怪 输入时间:JavaScript返回时间不正确,javascript,Javascript,我正在开发移动应用程序,并使用以下日期字符串构造日期对象。但是我需要输出的时间字符串比输入的时间奇怪 输入时间: 2014-01-09T20:40:00 输出时间: 10th January, 2:10am 为了构造date对象,我使用以下代码 var date = new Date('2014-01-09T20:40:00'); Dates.getAMPMTimeFromDateObject = function (date) { var dateSuffi
2014-01-09T20:40:00
输出时间:
10th January, 2:10am
为了构造date对象,我使用以下代码
var date = new Date('2014-01-09T20:40:00');
Dates.getAMPMTimeFromDateObject = function (date) {
var dateSuffix = Constants.Formatting.DateAMSuffix,
hours = date.getHours(),
minutes = date.getMinutes(),
minutesString;
hours = (hours + 24) % 24;
if (hours === 0) {
hours = 12;
} else if (hours > 12) {
hours = hours % 12;
dateSuffix = Constants.Formatting.DatePMSuffix;
} else if (hours === 12) { //This is specific fix for 12PM exceptional case
dateSuffix = Constants.Formatting.DatePMSuffix;
}
minutesString = (minutes < 10) ? '0' + minutes : minutes;
return hours + ':' + minutesString + dateSuffix;
};
var日期=新日期('2014-01-09T20:40:00');
Dates.GetAmpTimeFromDateObject=函数(日期){
var dateSuffix=Constants.Formatting.DateAMSuffix,
小时=日期。getHours(),
分钟数=日期。getMinutes(),
细弦;
小时=(小时+24)%24;
如果(小时==0){
小时=12;
}否则,如果(小时数>12){
小时数=小时数%12;
dateSuffix=Constants.Formatting.DatePMSuffix;
}否则,如果(小时===12){//这是针对中午12点例外情况的特定修复
dateSuffix=Constants.Formatting.DatePMSuffix;
}
分钟字符串=(分钟<10)?“0”+分钟:分钟;
返回小时数+':'+分钟字符串+日期后缀;
};
您的问题很可能是由于时区造成的。您所在的国家是否有
您的输出时间使用当前区域设置进行了清晰的格式化
换句话说,你的约会没有问题!您需要考虑如何处理代码中的时区。
通常,请确保代码中的日期为GMT,在解析/序列化日期时使用,并且在向用户显示时仅将日期转换为特定时区。您绝对需要为ISO日期字符串指定时区。这是一个跨浏览器兼容性问题 如果未指定时区,请执行以下操作:
- Chrome假定您的输入是UTC
- Firefox/IE假定您的输入是本地的
var date = new Date('2014-01-09T20:40:00Z'); //note 'Z' for "zero-offset"
但是,较旧的浏览器甚至不理解ISO日期/时间输入,因此请谨慎使用
关于日期/时间字符串兼容性的一个方便的参考资料:是否检查了您的时区?尝试使用此api处理日期是否可以显示输出错误时间的代码?