javascriptdate到string

这是我需要做的。

获取date,转换为string,并将其传递给第三方实用程序。 我通过它的时候,库的响应会有string格式的date。 所以,我需要将date转换为string,如20110506105524(YYYYMMDDHHMMSS)

function printDate() { var temp = new Date(); var dateStr = temp.getFullYear().toString() + temp.getMonth().toString() + temp.getDate().toString() + temp.getHours().toString() + temp.getMinutes().toString() + temp.getSeconds().toString(); debug (dateStr ); } 

上面的问题是,1-9个月,它打印一个数字。 如何将其更改为打印月份,date的精确2位数字…

如果其单个数字和笔记getMonth返回0..11而不是1..12,则需要填充“0”

 function printDate() { var temp = new Date(); var dateStr = padStr(temp.getFullYear()) + padStr(1 + temp.getMonth()) + padStr(temp.getDate()) + padStr(temp.getHours()) + padStr(temp.getMinutes()) + padStr(temp.getSeconds()); debug (dateStr ); } function padStr(i) { return (i < 10) ? "0" + i : "" + i; } 

依赖于JQuery Datepicker ,但它可以很容易地完成:

 var mydate = new Date(); $.datepicker.formatDate('yy-mm-dd', mydate); 

使用这个polyfill https://github.com/UziTech/js-date-format

 var d = new Date("1/1/2014 10:00 am"); d.format("DDDD 'the' DS 'of' MMMM YYYY h:mm TT"); //output: Wednesday the 1st of January 2014 10:00 AM 

使用正则expression式和toJSON()稍微简单一些。

 var now = new Date(); var timeRegex = /^.*T(\d{2}):(\d{2}):(\d{2}).*$/ var dateRegex = /^(\d{4})-(\d{2})-(\d{2})T.*$/ var dateData = dateRegex.exec(now.toJSON()); var timeData = timeRegex.exec(now.toJSON()); var myFormat = dateData[1]+dateData[2]+dateData[3]+timeData[1]+timeData[2]+timeData[3] 

在撰写本文时给你"20151111180924"

使用toJSON()的好处是所有东西都已经被填充了。

也许将date转换为实际整数20110506105524然后将其转换为string更容易:

 function printDate() { var temp = new Date(); var dateInt = ((((temp.getFullYear() * 100 + temp.getMonth() + 1) * 100 + temp.getDate()) * 100 + temp.getHours()) * 100 + temp.getMinutes()) * 100 + temp.getSeconds(); debug ( '' + dateInt ); // convert to String } 

temp.getFullYear() < 1000 ,结果会缩短一个(或多个)数字。

注意:由于Number.MAX_SAFE_INTEGER是9007199254740991 ,它只能使用16位数字,所以不会以毫秒级精度(即17位数)工作。

我喜欢Daniel Cerecedo的回答,使用toJSON()和正则expression式。 更简单的forms是:

 var now = new Date(); var regex = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}).*$/; var token_array = regex.exec(now.toJSON()); // [ "2017-10-31T02:24:45.868Z", "2017", "10", "31", "02", "24", "45" ] var myFormat = token_array.slice(1).join(''); // "20171031022445"