如何在JavaScript中将dd.mm.yyyy格式日期转换为yyyy-mm-dd格式?
以下是一个例子:
30.01.2010
to
2010-01-30
意思是将d.m.Y转换为Y-m-d。我知道如何在PHP中执行此操作,但我需要在JavaScript中使用它。
答案 0 :(得分:17)
你可以很简单地做到这一点。只需将欧洲日期拆分为一个数组,然后将其反转,然后用破折号加入它。
var euro_date = '30.01.2010';
euro_date = euro_date.split('.');
var us_date = euro_date.reverse().join('-');
答案 1 :(得分:7)
Datejs可以解析它。代码位于http://datejs.googlecode.com/files/date.js
编辑:对于left date.js来说,不是安全的,自动确定格式字符串。我犯了一个错误,就是没有测试一天< = 12(duh)。你应该使用:
Date.parseExact('09.01.2010', 'd.M.yyyy').toString('yyyy-MM-dd');
或
Date.parseExact('09.01.2010', 'dd.MM.yyyy').toString('yyyy-MM-dd');
取决于您是否允许单个数字天。
答案 2 :(得分:7)
如果您只需要这样做,Datejs有点臃肿。您可以使用split()
并连接结果:
var eu_date = '30.01.2010';
var parts = eu_date.split('.');
var us_date = parts[2]+'-'+parts[1]+'-'+parts[0];
对于那些不需要日期逻辑的转换,通常最聪明的就是使用字符串操作工具。
答案 3 :(得分:2)
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// Results below assume UTC timezone - your results may vary
console.log(new Intl.DateTimeFormat('en-US').format(date));
// expected output: "12/20/2012"
console.log(new Intl.DateTimeFormat('en-GB').format(date));
// expected output: "20/12/2012"
// Include a fallback language, in this case Indonesian
console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date));
// expected output: "20/12/2012"
此信息托管在Mozilla开发网络(MDN)中: Intl.DateTimeFormat MDN Web docs
您可以使用DateString形式的日期,例如:“ Thu Oct 03 2019”。 有了这个,我们可以将其转换为想要的格式,但是首先我们必须将这个字符串转换为包含日期信息的对象:
let convertedDate = new Date("Thu Oct 03 2019")
然后,我们可以将日期转换为想要的日期格式:
let FinalDate = new Intl.DateTimeFormat('en-GB').format(convertedDate)
如果您居住在美国,请将“ en-GB”更改为“ en-US”,如果不需要其他格式,请搜索其他格式,您可以随时在此处查找其他语言代码:
答案 4 :(得分:1)
function stringToDate( value ) {
var isEuro = value.match( /^\d{1,2}\.\d{1,2}\.\d{4}$/ )
var isIso = value.match( /^\d{4}-\d{1,2}-\d{1,2}$/ )
if ( isEuro ) {
value = value.split('.')
value = [value[2],value[1],value[0]].join('-') //.reverse() isn't working in IEdge
isIso = true
}
if ( isEuro || isIso ) {
var date = new Date( value )
}
if ( isNaN( date.getTime() ) || !isIso ) {
return false
}
return date
}
stringToDate('30.01.2000') //Sun Jan 30 2000 00:00:00 GMT+0100 (CET)
stringToDate('30.1.2000') //Sun Jan 30 2000 01:00:00 GMT+0100 (CET)
stringToDate('2000-01-30') //Sun Jan 30 2000 01:00:00 GMT+0100 (CET)
stringToDate('2000-1-30') //Sun Jan 30 2000 01:00:00 GMT+0100 (CET)