首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript日期格式化问题

Javascript日期格式化问题
EN

Stack Overflow用户
提问于 2022-08-09 09:29:59
回答 3查看 55关注 0票数 0

我想从一个yyyy-mm-dd JavaScript Date对象中获得一个JavaScript格式的日期。

代码语言:javascript
复制
new Date('Aug 5 2022').toISOString().split('T')[0]

从上线看,我期待2022-08-05,但得到2022-08-04

如何解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2022-08-09 09:33:59

发生此问题是因为您试图将toISOString转换为UTC --自动转换为UTC,我确信您不在UTC区域。因此,要修复此使用:

代码语言:javascript
复制
new Date('Aug 5 2022 GMT+00').toISOString().split('T')[0]

因此,将其转换为UTC,然后转换为toISOString()

票数 1
EN

Stack Overflow用户

发布于 2022-08-09 09:36:47

你的约会被转换为世界协调时。解决这一问题的一种方法是将UTC添加到参数字符串中。

代码语言:javascript
复制
new Date('Aug 5 2022 UTC').toISOString().split('T')[0]

Date.prototype.toISOString() toISOString()方法返回一个简化扩展ISO格式(ISO8601)的字符串,该字符串总是长为24个或27个字符(分别为YYYY-mm-DDTHH:mm:ss.sssZ或±YYYYYY DDTHH:mm:ss.sssZ)。时区始终为零UTC偏移量,由后缀Z - Date.prototype.toISOString()表示。

票数 0
EN

Stack Overflow用户

发布于 2022-08-09 10:00:40

下面是从本机yyyy-mm-dd Date对象获取您询问的JavaScript字符串格式的两种方法:

  1. 根据系统时间UTC偏移量抵消日期信息

代码语言:javascript
复制
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);

  1. 获取单个日期部件和如果有必要

代码语言:javascript
复制
function getDateString (date) {
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const dayOfMonth = date.getDate();
  return `${year}-${String(month).padStart(2, '0')}-${String(dayOfMonth).padStart(2, '0')}`;
}

const date = new Date();
const dateStr = getDateString(date);

console.log(dateStr);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73289495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档