如何获取 YYYY-MM-DD 格式的日期
How do I get a date in YYYY-MM-DD format?
通常,如果我想得到日期,我可以做一些类似的事情
var d = new Date();
console.log(d);
这样做的问题是,当我运行该代码时,它会返回:
2015年8月24日星期一 4:20:00 GMT-0800(太平洋标准时间(
我怎样才能让 Date(( 方法以"MM-DD-YYYY"格式返回一个值,以便它返回类似以下内容:
2015/8/24
或者,也许是月-日-年 H:M
2016-8-24 4:20
只需使用内置的 .toISOString()
方法,如下所示:toISOString().split('T')[0]
.简单,干净,都在一条线上。
var date = (new Date()).toISOString().split('T')[0];
document.getElementById('date').innerHTML = date;
<div id="date"></div>
请注意,格式化字符串的时区是 UTC 而不是本地时间。
下面的代码是一种方法。如果您有日期,请将其传递给 convertDate()
函数,它将返回 YYYY-MM-DD 格式的字符串:
var todaysDate = new Date();
function convertDate(date) {
var yyyy = date.getFullYear().toString();
var mm = (date.getMonth()+1).toString();
var dd = date.getDate().toString();
var mmChars = mm.split('');
var ddChars = dd.split('');
return yyyy + '-' + (mmChars[1]?mm:"0"+mmChars[0]) + '-' + (ddChars[1]?dd:"0"+ddChars[0]);
}
console.log(convertDate(todaysDate)); // Returns: 2015-08-25
另一种方式:
var today = new Date().getFullYear()+'-'+("0"+(new Date().getMonth()+1)).slice(-2)+'-'+("0"+new Date().getDate()).slice(-2)
document.getElementById("today").innerHTML = today
<div id="today">
"YYYY-MM-DD"的单行解决方案
new Date().toLocaleDateString("fr-CA", {year:"numeric", month: "2-digit", day:"2-digit"})
2023年除夕的输出:"2023-12-31">
通过使用 Moment.js 库,您可以执行以下操作:
var datetime = new Date("2015-09-17 15:00:00");
datetime = moment(datetime).format("YYYY-MM-DD");
var today = new Date();
function formatDate(date) {
var dd = date.getDate();
var mm = date.getMonth() + 1; //January is 0!
var yyyy = date.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
//return dd + '/' + mm + '/' + yyyy;
return yyyy + '/' + mm + '/' +dd ;
}
console.log(formatDate(today));
function formatdate(userDate){
var omar= new Date(userDate);
y = omar.getFullYear().toString();
m = omar.getMonth().toString();
d = omar.getDate().toString();
omar=y+m+d;
return omar;
}
console.log(formatDate("12/31/2014"));
这会将 unix 时间戳转换为本地日期(+时间(
function UnixTimeToLocalDate = function( unix_epoch_time )
{
var date,
str;
date = new Date( unix_epoch_time * 1000 );
str = date.getFullYear() + '-' +
(date.getMonth() + 1 + '').padStart( 2, '0' ) + '-' +
(date.getDate() + '').padStart( 2, '0' );
// If you need hh:mm:ss too then
str += ' ' +
(date.getHours() + '').padStart( 2, '0' ) + ':' +
(date.getMinutes() + '').padStart( 2, '0' ) + ':' +
(date.getSeconds() + '').padStart( 2, '0' );
return str;
}
如果您尝试获取"local-ISO"日期字符串。请尝试下面的代码。
function (date) {
return new Date(+date - date.getTimezoneOffset() * 60 * 1000).toISOString().split(/[TZ]/).slice(0, 2).join(' ');
}
+date
从日期获取毫秒数。
参考: 日期.原型.获取时区偏移量玩得开心:)
实现的目标可以用原生JavaScript来完成。对象Date
具有完全生成所需输出的方法。
下面是代码示例:
var d = new Date();
console.log(d);
>>> Sun Jan 28 2018 08:28:04 GMT+0000 (GMT)
console.log(d.toLocaleDateString());
>>> 1/28/2018
console.log(d.toLocaleString());
>>> 1/28/2018, 8:28:04 AM
真的没有必要重新发明轮子。
这是我在继续从事一个项目时创建的简单函数,我经常需要以这种格式获取今天、昨天和明天的日期。
function returnYYYYMMDD(numFromToday = 0){
let d = new Date();
d.setDate(d.getDate() + numFromToday);
const month = d.getMonth() < 9 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1;
const day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();
return `${d.getFullYear()}-${month}-${day}`;
}
console.log(returnYYYYMMDD(-1)); // returns yesterday
console.log(returnYYYYMMDD()); // returns today
console.log(returnYYYYMMDD(1)); // returns tomorrow
可以很容易地修改以传递日期,但在这里你传递一个数字,它将从今天开始返回很多天。
如果您不反对添加小型库,Date-Mirror(NPM 或 unpkg(允许您将 YYYY-MM-DD 中的现有日期格式化为您想要的任何日期字符串格式。
date('n/j/Y', '2020-02-07') // 2/7/2020
date('n/j/Y g:iA', '2020-02-07 4:45PM') // 2/7/2020 4:45PM
date('n/j [until] n/j', '2020-02-07', '2020-02-08') // 2/7 until 2/8
免责声明:我开发了日期镜像。
如果你想要一种适合排序的文本格式,请使用:
function formatDateYYYYMMDDHHMMSS(date){
// YYYY-MM-DD HH:MM:SS
const datePart = date.toISOString().split("T")[0]
const timePart = date.toLocaleString('en-US', {hour12: false}).split(",")[1]
return datePart + timePart
}
作为原型:
Date.prototype.toSortString = function(){
const date = new Date(this.valueOf());
return date.toISOString().split("T")[0] +
date.toLocaleString('en-US', {hour12: false}).split(",")[1]
}
const padTo2Digits = num => {
return num.toString().padStart(2, '0')
}
const formatDate = date => {
return [
date.getFullYear(),
padTo2Digits(date.getMonth() + 1),
padTo2Digits(date.getDate())
].join('-')
}
let value = formatDate(new Date())
document.getElementById('dayFormatUS').innerHTML = value
const transformDate = date => {
const convert = date.split('-').reverse()
return convert.join('/')
}
document.getElementById('dayFormatBR').innerHTML = transformDate(value)
<div>
Format US -
<span id='dayFormatUS'></span>
</div>
<div>
Format BR -
<span id='dayFormatBR'></span>
</div>
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 如何使用moment.js将秒转换为时间格式(YYYY:MM:DD HH:MM:ss)
- Javascript Date 对象因格式而异:yyyy-mm-dd vs mm-dd-yyyy
- 在Javascript中用YYYY-mm-dd格式计算年龄
- 在 Angular 中将日期格式从 yyyy/MM/dd 更改为 MM/dd/yyyy
- 将YYYY/MM/DD转换为有效格式
- 使用RegEx在javascript中重写格式错误的日期yyyy-MM-d到yyyy-MM-dd
- 日期格式 yyyy-mm-dd 到 dd-M-yy
- 以 yyyy-mm-dd 格式的两天之间的差异(以天为单位)
- 如何验证 yyyy-mm-dd hh:mm:ss 格式
- 日期选取器和日期字段中的日期格式(YYYY-MM-DD)
- 在 JS 中将以下日期格式化为 YYYY-mm-dd
- 如何使用javascript将数据格式“YYYY-mm-dd hh:mm:ss”转换为“dd-mm-YYYY hh:mm
- 使用 Javascript 将 DD-MM-YYYY 转换为 YYYY-MM-DD 格式
- 在 JavaScript 中将数据格式从 yyyy/mm/dd - HH:MM:SS 更改为 mm/dd/yyyy -
- 以YYYY-MM-DD格式填写出生日期后自动显示年龄
- 如何使用JS在用YYYY-MM-DD格式填充生日后自动填充年龄字段
- 如何获取 YYYY-MM-DD 格式的日期
- 如何使用jquery将yyyy-mm-dd格式的日期转换为“长日期”格式