我试图使用JS将日期对象转换为YYYYMMDD格式的字符串。有没有比连接Date.getYear(), Date.getMonth()和Date.getDay()更简单的方法?
当前回答
您可以创建自己的函数,如下所示
function toString(o, regex) {
try {
if (!o) return '';
if (typeof o.getMonth === 'function' && !!regex) {
let splitChar = regex.indexOf('/') > -1 ? '/' : regex.indexOf('-') > -1 ? '-' : regex.indexOf('.') > -1 ? '.' : '';
let dateSeparate = regex.split(splitChar);
let result = '';
for (let item of dateSeparate) {
let val = '';
switch (item) {
case 'd':
val = o.getDate();
break;
case 'dd':
val = this.date2Char(o.getDate());
break;
case 'M':
val = o.getMonth() + 1;
break;
case 'MM':
val = this.date2Char(o.getMonth() + 1);
break;
case 'yyyy':
val = o.getFullYear();
break;
case 'yy':
val = this.date2Char(o.getFullYear());
break;
default:
break;
}
result += val + splitChar;
}
return result.substring(0, result.length - 1);
} else {
return o.toString();
}
} catch(ex) { return ''; }
}
function concatDateToString(args) {
if (!args.length) return '';
let result = '';
for (let i = 1; i < args.length; i++) {
result += args[i] + args[0];
}
return result.substring(0, result.length - 1);
}
function date2Char(d){
return this.rightString('0' + d);
}
function rightString(o) {
return o.substr(o.length - 2);
}
使用:
var a = new Date();
console.log('dd/MM/yyyy: ' + toString(a, 'dd/MM/yyyy'));
console.log('MM/dd/yyyy: ' + toString(a, 'MM/dd/yyyy'));
console.log('dd/MM/yy: ' + toString(a, 'dd/MM/yy'));
console.log('MM/dd/yy: ' + toString(a, 'MM/dd/yy'));
其他回答
我不喜欢增加原型。另一种选择是:
var rightNow = new Date(); var res = rightNow.toISOString().slice(0,10).replace(/-/g,""); <!——下一行仅用于代码段输出——> document.body.innerHTML += res;
你可以使用toISOString函数:
var today = new Date();
today.toISOString().substring(0, 10);
它会给你一个“yyyy-mm-dd”格式。
var dateDisplay = new Date( 2016-11-09 05:27:00 UTC );
dateDisplay = dateDisplay.toString()
var arr = (dateDisplay.split(' '))
var date_String = arr[0]+','+arr[1]+' '+arr[2]+' '+arr[3]+','+arr[4]
这将显示像Wed,Nov 09 2016,10:57:00这样的字符串
原生Javascript:
new Date().toLocaleString('zu-ZA').slice(0,10).replace(/-/g,'');
yyyymmdd=x=>(f=x=>(x<10&&'0')+x,x.getFullYear()+f(x.getMonth()+1)+f(x.getDate())); 警报(年年月日(新日期));
推荐文章
- 如何将两个字符串相加,就好像它们是数字一样?
- 绑定多个事件到一个监听器(没有JQuery)?
- 在JavaScript中将JSON字符串解析为特定对象原型
- 将字符串“true”/“false”转换为布尔值
- 如何使用JavaScript代码获得浏览器宽度?
- event.preventDefault()函数在IE中无法工作
- indexOf()和search()的区别是什么?
- 错误:'types'只能在.ts文件中使用- Visual Studio Code使用@ts-check
- React-Native:应用程序未注册错误
- LoDash:从对象属性数组中获取值数组
- src和dist文件夹的作用是什么?
- jQuery UI对话框-缺少关闭图标
- SQL Developer只返回日期,而不是时间。我怎么解决这个问题?
- 如何使用AngularJS获取url参数
- 将RGB转换为白色的RGBA