JavaScript 将长日期格式转换为 mm/dd/yyy
JavaScript convert long date format to mm/dd/yyy
我有以下代码将JavaScript中的长日期格式转换为mm/dd/yyyy。当 newValu 从控制台日志中变为"日期 2016-12-29T00:00:00.000Z"时,date_str有一天回到过去,变成"12/28/2016"。不确定是什么导致了问题。如果我们将 d(天)递增 1,那将不起作用,因为如果 d = 31,我们可能需要增加月份。
console.log(newValue);
var date = newValue;
var d = date.getDate();
var m = date.getMonth() + 1;
var y = date.getFullYear();
date_str = (m<=9 ? '0' + m : m) + '/' + (d <= 9 ? '0' + d : d) + "/" + y;
这里有一个提示:
function change(date) {
var r = String(date).match(/^'s*([0-9]+)'s*-'s*([0-9]+)'s*-'s*([0-9]+)(.*)$/);
return r[2] + "-" + r[3] + "-" + r[1] + r[4];
}
此函数将返回"mm/dd/yyyy"。
不确定是什么导致了问题。
如果 newValue 是一个 Date 对象,并且在打印到控制台时得到"2016-12-29T00:00:00.000Z",请注意这是 GMT。
如果主机系统的时区在 GMT 以西(例如 -0400),则等效日期将为"2016-12-28T20:00:00.000Z",即提前 4 小时(和前一天)。当你使用普通的获取方法(getDate,getHours,getMinutes等)时,你得到的就是这些值。
因此,您的日期字符串对于主机系统的时区是正确的。
var x = new Date('2016-12-29T00:00:00.000Z');
// Local equivalent on your host system
document.write(x);
// UTC values in ISO 8601 format
document.write('<br>' + x.toISOString());
// Date string from ISO parts
document.write('<br>'+ ('0'+(x.getUTCMonth()+1)).slice(-2) + '-' +
('0'+x.getUTCDate()).slice(-2) + '-' +
x.getUTCFullYear() );
如果希望日期字符串中的值与 Date 对象的 UTC 值匹配,请使用 UTC 方法:
var d = date.getUTCDate();
var m = date.getUTCMonth() + 1;
var y = date.getUTCFullYear();
相关文章:
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在 JavaScript 中的个位数月份和日期之前添加零 (MM/DD/YYYY)
- 如何使用moment.js将秒转换为时间格式(YYYY:MM:DD HH:MM:ss)
- JavaScript 将长日期格式转换为 mm/dd/yyy
- Javascript Date 对象因格式而异:yyyy-mm-dd vs mm-dd-yyyy
- 使用 YYYY-MM-DD 值的比较构建 D3 时间线
- 在Javascript中用YYYY-mm-dd格式计算年龄
- 在 Angular 中将日期格式从 yyyy/MM/dd 更改为 MM/dd/yyyy
- javascript/jQuery date.toString(“yyyy-MM-dd HH:MM:ss”)在服务器之间
- Javascript正在删除DateTime[YYYY/MM/DD/HH:MM:SS:MM]中的毫秒
- 我们可以将控制器中的JSON数据(MM/DD/YYYY格式)与今天的's日期,并在数组中显示筛选列表
- 将YYYY/MM/DD转换为有效格式
- 使用new date()将数据与当前日期的MM/DD/YYYY格式的日期进行比较和筛选,同时从用户输入值中减去new d
- 用JavaScript将日期格式设置为MM/dd/yyyy
- 我想在日期中添加月份,并采用mm/dd/yy格式
- 使用RegEx在javascript中重写格式错误的日期yyyy-MM-d到yyyy-MM-dd
- 创建一个等于yyyy-mm-dd 00:00:00或23:59:59的时间戳
- 如何获得日期以 YYYY-mm-dd 为单位的年份差异
- 日期格式 yyyy-mm-dd 到 dd-M-yy