将预定义日期值格式化为 JavaScript 中的 ISO 格式
Formatting a predefined Date value to ISO format in JavaScript
我需要以 ISO 格式向服务器发送日期值"YYYY-MM-DDTHH:mm:ss.SSS[Z]"
我不需要时间详细信息,所以我将它们设置为零。
为此我使用下面的代码
var today = new Date();
var todayWithTimeAsZero = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
我得到 todayWithTimeAsZero
作为 Tue Jul 25 2017 22:06:03 GMT+0530 (India Standard Time)
现在如何将此日期转换为 ISO 格式。我到处研究但没有运气。
我试过 var day = todayWithTimeAsZero.toISOString();
但这会创建一个新的日期对象,其中填充的时间值像这样 2017-07-24T18:30:00.000Z
。我的项目中也有 momentjs,我可能会以某种方式使用它。
使用 moment.js
您可以获得 UTC 的当前日期,然后将时间值设置为零并获取 ISO 字符串:
moment() // current date
.utc() // convert to UTC
.hours(0).minutes(0).seconds(0).milliseconds(0) // set time values to zero
.toISOString() // format to ISO8601
格式化字符串的值为2017-07-25T00:00:00.000Z
.
您还可以使用Date
的setUTCxxx
方法:
var today = new Date();
today.setUTCHours(0);
today.setUTCMinutes(0);
today.setUTCSeconds(0);
today.setUTCMilliseconds(0);
today.toISOString()
将是 2017-07-25T00:00:00.000Z
。
如果您创建一个日期,然后将 UTC 时间归零并仅获取日期,则在时区偏移期间,它将与本地日期不同。对于 UTC+1000 中的某人,UTC 日期是昨天直到 10:00。对于使用 UTC-0600 的用户,它将在 18:00(下午 6 点)之后 "tomorrow"。
无论如何,没有任何图书馆你可以做:
var d = new Date();
d.setUTCHours(0,0,0,0);
console.log(d.toISOString());
我需要以 ISO 格式向服务器发送日期值"YYYY-MM-DDTHH:mm:ss.SSS[Z]"
我不需要时间详细信息,所以我将它们设置为零。
为此我使用下面的代码
var today = new Date();
var todayWithTimeAsZero = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
我得到 todayWithTimeAsZero
作为 Tue Jul 25 2017 22:06:03 GMT+0530 (India Standard Time)
现在如何将此日期转换为 ISO 格式。我到处研究但没有运气。
我试过 var day = todayWithTimeAsZero.toISOString();
但这会创建一个新的日期对象,其中填充的时间值像这样 2017-07-24T18:30:00.000Z
。我的项目中也有 momentjs,我可能会以某种方式使用它。
使用 moment.js
您可以获得 UTC 的当前日期,然后将时间值设置为零并获取 ISO 字符串:
moment() // current date
.utc() // convert to UTC
.hours(0).minutes(0).seconds(0).milliseconds(0) // set time values to zero
.toISOString() // format to ISO8601
格式化字符串的值为2017-07-25T00:00:00.000Z
.
您还可以使用Date
的setUTCxxx
方法:
var today = new Date();
today.setUTCHours(0);
today.setUTCMinutes(0);
today.setUTCSeconds(0);
today.setUTCMilliseconds(0);
today.toISOString()
将是 2017-07-25T00:00:00.000Z
。
如果您创建一个日期,然后将 UTC 时间归零并仅获取日期,则在时区偏移期间,它将与本地日期不同。对于 UTC+1000 中的某人,UTC 日期是昨天直到 10:00。对于使用 UTC-0600 的用户,它将在 18:00(下午 6 点)之后 "tomorrow"。
无论如何,没有任何图书馆你可以做:
var d = new Date();
d.setUTCHours(0,0,0,0);
console.log(d.toISOString());