page - inject javascript into url
javascript date to string (6)
Confiando en JQuery Datepicker , pero podría hacerse fácilmente:
var mydate = new Date();
$.datepicker.formatDate(''yy-mm-dd'', mydate);
Esto es lo que necesito hacer.
Obtenga la fecha, conviértalo en una cadena y páselo a una utilidad de terceros. La respuesta de la biblioteca tendrá fecha en formato de cadena cuando la aprobé. Entonces, necesito convertir la fecha a una cadena como 20110506105524 (AAAAMMDDHHMMSS)
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 );
}
El problema con arriba es que durante los meses 1 a 9, imprime un dígito. ¿Cómo puedo cambiarlo para imprimir exactamente 2 dígitos por mes, fecha ...
Deberá rellenar con "0" si tiene un solo dígito y note getMonth
devuelve 0..11 no 1..12
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;
}
Me gusta la respuesta de Daniel Cerecedo usando toJSON()
y regex. Una forma aún más simple sería:
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"
Tal vez sea más fácil convertir la Fecha en el número entero real 20110506105524
y luego convertir esto en una cadena:
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
}
Cuando temp.getFullYear() < 1000
el resultado será uno (o más) dígitos más cortos.
Precaución: esto no funcionará con una precisión de milisegundos (es decir, 17 dígitos) ya que Number.MAX_SAFE_INTEGER es 9007199254740991
que tiene solo 16 dígitos.
Un poco más simple usando regex y 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]
Que en el momento de escribir le da "20151111180924"
.
Lo bueno de usar toJSON()
es que todo viene incluido.
utiliza este 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