我如何格式化一个像ISO格式的javascript日期,但在本地时间?
用myDate.toISOString()
我得到的时间是:"2012-09-13T19:12:23.826Z“
但是在这里,现在是22:13,那么如何在上面的格式中包含时区?
我最后做了..。
pad=function(e,t,n){n=n||"0",t=t||2;while((""+e).length<t)e=n+e;return e}
c = new Date()
c.getFullYear()+"-"+pad(c.getMonth()+1)+"-"+pad(c.getDate()-5)+"T"+c.toLocaleTimeString().replace(/\D/g,':')+"."+pad(c.getMilliseconds(),3)
发布于 2012-09-14 03:21:13
AFAIK你不能在javascript中格式化日期(不使用外部库)。你能做的最好的事情就是“自己格式化”。我的意思是:
var date = new Date();
var year = date.getFullYear();
var month = date......
var ISOdate = year + "-" + month + "-" + .... ;
但是有一些好的库可以让你格式化日期!(请阅读library.getDate("YYYY-MM-DD.........");
中的“格式”)
编辑:
Moment.js似乎就是你要找的东西:http://momentjs.com/
发布于 2021-01-17 15:01:26
这是一个小技巧,但可以通过利用瑞典使用非常接近ISO的格式的事实在一行中完成:
// Returns a string like 2021-01-17T01:59:57
function dateToISOButLocal(date) {
return date.toLocaleString('sv').replace(' ', 'T');
}
发布于 2018-11-16 18:25:01
为了方便起见,我采用了Denis Howe所说的,下面是一个现成的函数。
还有一个修正:在最初的答案中,t-z不起作用,因为t是日期,而不是毫秒。
function dateToISOLikeButLocal(date) {
const offsetMs = date.getTimezoneOffset() * 60 * 1000;
const msLocal = date.getTime() - offsetMs;
const dateLocal = new Date(msLocal);
const iso = dateLocal.toISOString();
const isoLocal = iso.slice(0, 19);
return isoLocal;
}
这样我就得到了作为URL参数所需的字符串类型:
"2018-11-16T12:23:50"
https://stackoverflow.com/questions/12413243
复制相似问题