在 javascript 中设置日期字符串的格式

Format a date string in javascript

提问人:RamAlx 提问时间:6/12/2017 更新时间:3/22/2020 访问量:98609

问:

您好,我都有字符串类型的日期字段,iso格式如下: const date = “2017-06-10T16:08:00:我想以某种方式以以下格式编辑字符串,如下所示:10-06-2017,但我正在努力实现这一目标。 我在“T”字符之后剪切了子字符串

JavaScript 字符串 自定义

评论

0赞 Viplock 6/12/2017
使用 Moment JS 来实现这一点
0赞 Srishin Kp 6/12/2017
你为什么不检查 stackoverflow.com/a/25159403/4244010
0赞 Teemu 6/12/2017
...或 stackoverflow.com/q/1056728/1169519
1赞 DASH 6/12/2017
检查这个 - momentjs.com/docs/#/displaying

答:

19赞 daan.desmedt 6/12/2017 #1

使用 Moment.js 和函数。.format

moment('2017-06-10T16:08:00').format('MM/DD/YYYY');

将输出

06/10/2017

除了功能Moment.js将丰富您将更多有用的功能。format

评论

37赞 Wancieho 5/19/2019
不要提供插件作为唯一的解决方案,尤其是当 OP 没有要求它时。
-1赞 Viplock 6/12/2017 #2

我想建议使用 moment js 找到它 - http://momentjs.com/docs/

并像这样使用它

    moment(date.toString()).format("MM/DD/YYYY")
21赞 Ivan Mladenov 6/12/2017 #3

它可以在没有 moment.js 的情况下实现,但我建议你使用它

var date = new Date("2017-06-10T16:08:00");

var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();

if (day < 10) {
  day = '0' + day;
}
if (month < 10) {
  month = '0' + month;
}

var formattedDate = day + '-' + month + '-' + year
1赞 The Nerdy Geek 6/12/2017 #4

您可以使用 JavaScript date() 内置函数来获取所需日期/时间的部分内容。 例如,显示时间为 10:30:

<script>
var date = new Date();
 var min = date.getMinutes();
  var hour = date.getHour();
   document.write(hour+":"+min);
   </script>

要获取年、月、日、星期几,请使用

  • getFullYear();

  • getMonth();

  • getDate();

  • getDay();

要获取您发布的日期,请执行以下操作:

评论

0赞 lukas_o 5/15/2018
var month = date.getMonth()+1;月份从 0 开始计数,所以 1 月是 0,2 月是 1......
5赞 micebrain 6/12/2017 #5

如果日期字符串始终采用 ISO 格式,您还可以使用正则表达式在没有其他库的情况下重新格式化:

date.replace(/(\d{4})\-(\d{2})\-(\d{2}).*/, '$3-$2-$1')
0赞 monikapatelIT 12/14/2018 #6

Date.toJSON()

function formatDate(userDate) {
  // format from M/D/YYYY to YYYYMMDD
  return (new Date(userDate).toJSON().slice(0,10).split('-').reverse().join('-'));
}

console.log(formatDate("2017-06-10T16:08:00"));

1赞 Greg Venech 3/22/2020 #7

如果你想用原版javascript来做到这一点,@Ivan Mladenov的答案很好,可以使用padStart稍微合并一下。

const date = new Date()
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')

console.log(`${day}-${month}-${year}`)