jQuery将日期转换为唯一格式
尝试使用jquery以一种独特的格式转换日期 – 使用以下function(同样,尝试与谷歌的其他人)
function formatDate(date) { var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate() , year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [year, month, day].join('-'); } document.getElementById('printdate').innerHTML = formatDate('07/26/2017') ;
我有两种日期格式的输入,如 – 1) 5/16/2017
年5月5/16/2017
和2) 2017-5-16
预计产量将为2017-07-16
对于印度时区,上述函数按预期返回输出,如上述每个输入日期的2017-07-16
。
但是,如果我将时区更改为美国/加拿大,它会在前一天返回日期,即输入日期2017-06-26
,它返回2017-06-25
,输入日期为2017-06-25
月07/26/2017
,它返回2017-07-26
这是jsfidle – https://jsfiddle.net/L1j8ho1j/2/
是什么原因,它是在约会前一天返回的?
有没有其他function来转换日期,返回相同的输入日期与预期的格式?
任何帮助表示赞赏。
谢谢。
如果您愿意使用Moment.js,那么您可以使用时刻时区 。这可以解决您的日期时区和日期格式问题。
您需要加载以下所有内容:
- 时刻
- 那一刻,时区
使用它,您的formatDate
方法应该是这样的。
function formatDate(time, zone) { var format = 'YYYY-MM-DD'; return moment(time, format).tz(zone).format(format); } moment.tz.add("Asia/Kolkata|HMT +0630 IST|-5R.k -6u -5u|01212|-18LFR.k 1unn.k HB0 7zX0|15e6") moment.tz.add("America/Los_Angeles|PST PDT|80 70|0101|1Lzm0 1zb0 Op0") var date = new Date(); console.log(formatDate(date, 'Asia/Kolkata')); console.log(formatDate(date, 'America/Los_Angeles'));
您可以通过此链接获取最新的时区数据。