从 Date() 对象返回 dd-mm-yyyyy
Return dd-mm-yyyy from Date() object
>期望的返回值应该是格式化为dd-mm-yyyy
的字符串。
我试图给 ISOString 一个格式日期 dd-mm-yyyy 并添加 GMT,但代码给了我这种格式。我该怎么办?
new Date().toISOString()
.replace(/T/, ' '). // replace T with a space
.replace(/'..+/, ''); // delete the dot and everything after
'2012-11-04 14:55:45'
IM 正在寻找 04-11-2012 日期格式
使用今天的日期(作为 ISO 字符串,当前为"2016-03-08T13:51:13.382Z"),您可以执行以下操作:
new Date().toISOString().replace(/T.*/,'').split('-').reverse().join('-')
其输出为:
-> "08-03-2016"
这:
- 抓住日期。
- 将其转换为 ISO 字符串。
- 替换"T"及其后的所有内容。
- 通过拆分任何连字符 ('-') 字符将其转换为数组。(
["2016", "03", "08"]
) - 颠倒数组的顺序。(
["08", "03", "2016"]
) - 将数组作为字符串重新联接,用连字符分隔每个值。
下面是使用您的日期 (2012-11-04T14:55:45.000Z) 作为输入的演示:
var input = "2012-11-04T14:55:45.000Z",
output;
output = new Date(input).toISOString().replace(/T.*/,'').split('-').reverse().join('-');
document.getElementById('input').innerHTML = input;
document.getElementById('output').innerHTML = output;
<p><strong>Input:</strong> <span id=input></span></p>
<p><strong>Output:</strong> <span id=output></span></p>
new Date().toLocaleDateString("en-US");
仅返回日期。 这在今天"3/8/2016"
回归。
new Date().toLocaleDateString().replace(/'//g, '-');
会将其更改为带破折号的输出。 这将在今天"3-8-2016"
回归。
对于您的示例 '2012-11-04 14:55:45'
您可以做到:new Date('2012-11-04 14:55:45').toISOString().split('T')[0]
在一行中:)
您可以通过添加时区偏移量,然后调用toLocaleDateString
(英式格式),同时将斜杠替换为短划线并删除逗号,将本地日期转换为 UTC 日期。
// Adapted from: https://stackoverflow.com/a/55571869/1762224
const toLocaleUTCDateString = (date, locales, options) =>
new Date(date.valueOf() + (date.getTimezoneOffset() * 6e4))
.toLocaleDateString(locales, options);
// 'en-GB' === 'dd/mm/yyyy'
const formatDate = date =>
toLocaleUTCDateString(date, 'en-GB', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
})
.replace(/'//g, '-').replace(/,/, '');
const date = new Date();
console.log({
'ISO-8601': date.toISOString(),
'Custom': formatDate(date)
});
.as-console-wrapper { top: 0; max-height: 100% !important; }
或者,您可以尝试解析 ISO 8601 字符串:
const formatDate = _date =>
(([year, month, date, hour, minute, second, milliseconds]) =>
`${date}-${month}-${year} ${hour}:${minute}:${second}`)
(_date.toISOString().split(/[^'d]/g));
const date = new Date();
console.log({
'ISO-8601': date.toISOString(),
'Custom': formatDate(date)
});
.as-console-wrapper { top: 0; max-height: 100% !important; }
如果要以dd-mm-yyyy格式获取日期,您可以使用自定义函数生成日、月和全年的 metods Date()
,但如果日期或月份的数字小于 10,则日和月可能会返回小于 10 的数字,因此您可以检查它是否是,您添加 0,否则您将自己保留如下:
const date = () => {
let d = new Date();
let day = d.getDate()
let month = d.getMonth()
return `${day < 10 ? "0" + day : day}-${month < 10 ? "0" + month : month}-${d.getFullYear()}`;
}
let el = document.querySelector('p');
el.innerText = date();
<p></p>
- 如何在JavaScript中以天、dd/mm/yyyy格式显示昨天的日期
- 使用Javascript将MySQL日期格式转换为DD/MM/YY日期格式
- 表分类器addParser用于类似“;aa,dd.mm.yyyy”;
- 我需要用age Javascript验证dd/mm/yy格式(闰年)的dob
- Javascript 正则表达式日期格式 dd/mm/yy
- 将dd-mm-yyyy-hr:min:sec转换为unixtime
- 使用英国日期标准dd/mm/yyyy计算两个日期之间的差异
- 使用dd/mm/yyyy格式计算两个日期之间的差异-dons't account for years
- 将长日期转换为英国短日期格式 dd/mm/yyyy
- 如何将 jQuery 日期选择器格式设置为 dd-mm-year
- 使用 javascript 将日期和时间字符串转换为 dd/mm/yyyy
- Javascript Date Validation ( DD/MM/YYYY) & Age Checking
- 如何在附有日期选择器的文本框中设置默认日期(以这种格式“dd/mm/yy”)
- 使用 javascript 将日期从 dd/mm/yyyy 转换为 yyyy/mm/dd
- Javascript:如何将epoch转换为dd-mm-yyyy
- 从 Date() 对象返回 dd-mm-yyyyy
- 在 JavaScript 中将日期从 dd/mm/yyyy 转换为 yyyy-mm-dd
- jQuery:以 dd-mm-yyyy 格式添加 4 周至今
- Angular-UI 日期选择器不允许在输入字段中输入格式 dd.MM.yyyy
- 如何在角度 js 中将日期格式化为 DD/MM/YYYY