【问题标题】:Can you get the date format pattern from a date string with Moment.js您可以使用 Moment.js 从日期字符串中获取日期格式模式吗
【发布时间】:2019-05-21 20:46:06
【问题描述】:

我希望能够从 JavaScript 中的日期字符串中获取日期格式字符串。

如果可以使用它来实现,我也正在使用 Moment.js。

例如,如果我有一个字符串,例如

2019-01-01 15:00:00

我想要这样的东西返回

YYYY-MM-DD HH:mm:ss

我已经搜索了文档,但找不到任何答案。

【问题讨论】:

  • 我觉得你可以使用Parse Date Format插件,看here的例子。
  • 这看起来正是我想要的谢谢!如果您想添加答案,我会接受
  • 你可以format函数moment对象momentjs.com/docs/#/displaying/format
  • 我想你误解了这个问题,我想获取格式而不是设置格式,Vincenzo 的答案似乎正是我要找的
  • 哦,你想要反转它。

标签: javascript momentjs


【解决方案1】:

可以使用Parse Date Format插件:

这个插件提取日期/时间字符串的格式。

这里是一个活生生的例子:

const input = "2019-01-01 15:00:00"
const dateFormat = moment.parseFormat(input);

console.log(dateFormat);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://gr2m.github.io/moment-parseformat/moment-parseformat.js"></script>

在@VLAZ 评论后编辑,parseFormatpreferredOrder 选项:

parseFormat 如果找到由.-/ 分隔的3 个数字,则尝试自行计算日/月/年的顺序。但如果不能,它将回退到preferredOrder,可以将其设置为通过分隔符进行区分的对象,也可以设置为简单的字符串。

【讨论】:

  • 如果数据格式为06/05/2019,这倾向于假定美国格式,但它确实正确识别16/05/2019。请注意。
  • 非常感谢,没关系,我可以忍受这个限制,因为它主要在美国使用
  • @VLAZ 你是对的,插件有preferredOrder 选项来解决这个问题,我在你的评论后编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多