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"