提问人:RamAlx 提问时间:6/12/2017 更新时间:3/22/2020 访问量:98609
在 javascript 中设置日期字符串的格式
Format a date string in javascript
问:
您好,我都有字符串类型的日期字段,iso格式如下: const date = “2017-06-10T16:08:00:我想以某种方式以以下格式编辑字符串,如下所示:10-06-2017,但我正在努力实现这一目标。 我在“T”字符之后剪切了子字符串
答:
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}`)
评论