【问题标题】:Javascript, translate date using arrayJavascript,使用数组翻译日期
【发布时间】:2018-01-12 13:14:28
【问题描述】:

由于语言障碍,我无法找到我遇到的问题的答案。 在 JavaScript 中使用 2 个数组我需要翻译一个日期。

var months =['january','february','march','april','may','june','july','august','september','october'.'november','december'];
var weekday = ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'];

使用这个我应该转向例如:

2018 年 10 月 28 日星期一 14:41:20 GMT+0100
进入
2018 年 10 月 28 日星期一

抱歉,这可能是对之前已回答的问题的重新发布,但正如我之前提到的,我无法找到它。

【问题讨论】:

  • 如果您愿意使用库,请尝试MomentJs,不要重新发明轮子:moment(myDate).format('dddd DD MMMM YYYY');
  • 您也许可以使用正则表达式测试输入字符串。正则表达式可能会有所帮助。

标签: javascript arrays date


【解决方案1】:

使用 moment.js

moment(new Date('Mon Oct 28 2018 14:41:20 GMT+0100')).format('dddd DD MMMM YYYY')

【讨论】:

  • "弃用警告:提供的值不是公认的 RFC2822 或 ISO 格式。moment 构造回退到 js Date(),这在所有浏览器和版本中都不可靠。非 RFC2822/ISO 日期格式不鼓励使用,并将在即将发布的主要版本中删除。有关详细信息,请参阅 momentjs.com/guides/#/warnings/js-date。"
  • moment(new Date('Mon Oct 28 2018 14:41:20 GMT+0100'))..format('dddd DD MMMM YYYY')
  • "[...] Date(),它在所有浏览器和版本中都不可靠。不鼓励使用非 RFC2822/ISO 日期格式 [...]"
【解决方案2】:

您不需要外部来实现您的要求

你只需要使用一些Datefunctions

var months = ['january','february','march','april','may','june','july','august','september','october','november','december'];

var weekday = ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'];

var date=new Date();

console.log(getDate(date));

function getDate(date){
   return [
     weekday[date.getDay()],
     date.getDate(),
     months[date.getMonth()],
     date.getFullYear()
   ].join(' ');
}

【讨论】:

  • 谢谢,这是我正在寻找的答案类型。但是我不能真正使用它,大约一周前我开始使用 jscript,所以我还不太了解。我需要使用 document.write 在页面上显示答案。有没有办法你/我可以改变这个代码,所以它可以做到这一点?谢谢。
  • 请不要推荐使用内置解析器,见Why does Date.parse give incorrect results?。考虑只重新格式化字符串 而不 创建 Date 对象。
【解决方案3】:

如果你想香草javascript解决方案:

一个简单的解决方案(如果您可以放弃确切的完整月份名称):

var date = new Date("Mon Oct 28 2018 14:41:20 GMT+0100");

console.log(date.toDateString());

或者

将一些options 传递给toLocaleDateString

var date = new Date("Mon Oct 28 2018 14:41:20 GMT+0100");

console.log(date.toLocaleDateString("en-US", {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
}))

Check MDN Date documentation here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多