当前位置: 首页 > 知识库问答 >
问题:

Javascript日期格式问题[重复]

濮彬
2023-03-14

我想从JavaScriptdate对象中获取yyyy-mm-dd格式的日期。

new Date('Aug 5 2022').toISOString().split('T')[0]

从上面一行,我期待2022-08-05但得到2022-08-04

怎么解决?

共有3个答案

沙海
2023-03-14

以下是从本机JavaScriptDate对象获取您询问的yyy-mm-dd字符串格式的两种方法:

  1. 根据系统时间UTC偏移量偏移日期信息:
js lang-js prettyprint-override">const date = new Date();
const utcOffsetMs = date.getTimezoneOffset() * 60 * 1e3 * -1;
const offsetDate = new Date(date.getTime() + utcOffsetMs);
const dateStr = offsetDate.toISOString().slice(0, 10);

console.log(dateStr);
王建华
2023-03-14

您的日期将转换为UTC。解决此问题的一种方法是向参数字符串中添加UTC

new Date('Aug 5 2022 UTC').toISOString().split('T')[0]

日期.prototype.toISO字符串()

TOISOSString()方法返回简化扩展ISO格式(ISO 8601)的字符串,其长度始终为24或27个字符(YYYY-MM-DDTHH:MM:ss.sssZ或±YYYYY-MM-DDTHH:MM:ss.sssZ)。时区始终为零UTC偏移,由后缀Z.-Date.prototype.toISOString()表示

宋鸿德
2023-03-14

出现此问题的原因是您尝试转换为ISO字符串它会自动转换为UTC,我相信您不在UTC区域中。因此,要解决此问题,请执行以下操作:

new Date('Aug 5 2022 GMT+00').toISOString().split('T')[0]

因此,将其转换为UTC,然后将其转换为ISO字符串()

 类似资料:
  • 我需要将日期/时间从2014年8月20日15:30:00更改为2014年8月20日下午3:30 这可以使用javascript的日期对象来完成吗?

  • 我正在使用jquery datepicker,我想设置最小日期和最大日期来显示日期。我需要允许用户在最小和最大范围内选择日期。和dateformat也需要根据用户区域设置。 我有2个日期字段开始日期和结束日期。 但上面的代码在另一个本地国家/地区不能正常工作....它总是选择我的系统日期格式“MM/DD/YYYY”。 所以我尝试设置日期的格式var dateFormat=“dd.mm.yyyy”;

  • 问题内容: 我的日期格式是,它产生日期: 但我需要这样的日期: 什么日期格式将产生带有冒号的偏移量? 问题答案: 您可以使用这种格式 看看该文档以获取更多信息。 PS:- 正如我的朋友 @Thomas所 提到的,这仅适用于 Java 7 及更高版本。

  • 问题内容: 如何格式化: 作为JavaScript / jQuery中的常规查找日期? 问题答案: 这就是我所说的“ Microsoft Date”,以下函数会将编码日期转换为javascript日期时间

  • 问题内容: 在JavaScript中,如何格式化日期对象以打印为? 问题答案: 对于自定义分隔的日期格式,你必须从DateTimeFormat对象(属于ECMAScript Internationalization API的一部分)中提取日期(或时间)组件,然后手动使用所需的分隔符创建字符串。 为此,你可以使用DateTimeFormat#formatToParts: 你还可以使用来一对一地提取各

  • 我有日期输入为“20170101”(YYYYMMDD),我只需编写freemarker模板将上述日期转换或格式化为“2017-01-01 00:00:00”(YYYY-MM-DD HH:MM:SS)作为日期-时间以上格式。 但它返回错误为“字符串与预期的日期/时间/日期-时间格式不匹配。要分析的字符串是:”20170101“。预期的格式是:”MMM dd yyyy HH:MM:SS“。给出的嵌套原