Cómo convertir cadenas como esta '01 -01-1970 00:03:44 'a JavaScript datetime?Convierte cadena a datetime
Respuesta
Para este formato (suponiendo datepart tiene el formato dd- mm-aaaa) en javascript simple use dateString2Date
.
[Editar ] Se ha añadido un método de utilidad ES6 para analizar una cadena de fecha utilizando un parámetro de cadena de formato (format
) para informar el método de la posición de día/mes/año en la cadena de entrada.
var result = document.querySelector('#result');
result.textContent =
`*Fixed\ndateString2Date('01-01-2016 00:03:44'):\n => ${
dateString2Date('01-01-2016 00:03:44')}`;
result.textContent +=
`\n\n*With formatting\ntryParseDateFromString('01-01-2016 00:03:44', 'dmy'):\n => ${
tryParseDateFromString('01-01-2016 00:03:44', "dmy").toUTCString()}`;
result.textContent +=
`\n\nWith formatting\ntryParseDateFromString('03/01/2016', 'mdy'):\n => ${
tryParseDateFromString('03/01/1943', "mdy").toUTCString()}`;
// fixed format dd-mm-yyyy
function dateString2Date(dateString) {
var dt = dateString.split(/\-|\s/);
return new Date(dt.slice(0,3).reverse().join('-') + ' ' + dt[3]);
}
// multiple formats (e.g. yyyy/mm/dd or mm-dd-yyyy etc.)
function tryParseDateFromString(dateStringCandidateValue, format = "ymd") {
if (!dateStringCandidateValue) { return null; }
let mapFormat = format
.split("")
.reduce(function (a, b, i) { a[b] = i; return a;}, {});
const dateStr2Array = dateStringCandidateValue.split(/[ :\-\/]/g);
const datePart = dateStr2Array.slice(0, 3);
let datePartFormatted = [
+datePart[mapFormat.y],
+datePart[mapFormat.m]-1,
+datePart[mapFormat.d] ];
if (dateStr2Array.length > 3) {
dateStr2Array.slice(3).forEach(t => datePartFormatted.push(+t));
}
// test date validity according to given [format]
const dateTrial = new Date(Date.UTC.apply(null, datePartFormatted));
return dateTrial && dateTrial.getFullYear() === datePartFormatted[0] &&
dateTrial.getMonth() === datePartFormatted[1] &&
dateTrial.getDate() === datePartFormatted[2]
? dateTrial :
null;
}
<pre id="result"></pre>
http://www.w3schools.com/jsref/jsref_parse.asp
< script type = "text/javascript">
var d = Date.parse ("jul 8, 2005");
document.write (d);
</script>
no hay ninguna construidos de forma, es posible que desee intentar algo así como this: ver también this question
Esta respuesta parece obsoleta – insign
formatDateTime(sDate,FormatType) {
var lDate = new Date(sDate)
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
var hh = lDate.getHours() < 10 ? '0' +
lDate.getHours() : lDate.getHours();
var mi = lDate.getMinutes() < 10 ? '0' +
lDate.getMinutes() : lDate.getMinutes();
var ss = lDate.getSeconds() < 10 ? '0' +
lDate.getSeconds() : lDate.getSeconds();
var d = lDate.getDate();
var dd = d < 10 ? '0' + d : d;
var yyyy = lDate.getFullYear();
var mon = eval(lDate.getMonth()+1);
var mm = (mon<10?'0'+mon:mon);
var monthName=month[lDate.getMonth()];
var weekdayName=weekday[lDate.getDay()];
if(FormatType==1) {
return mm+'/'+dd+'/'+yyyy+' '+hh+':'+mi;
} else if(FormatType==2) {
return weekdayName+', '+monthName+' '+
dd +', ' + yyyy;
} else if(FormatType==3) {
return mm+'/'+dd+'/'+yyyy;
} else if(FormatType==4) {
var dd1 = lDate.getDate();
return dd1+'-'+Left(monthName,3)+'-'+yyyy;
} else if(FormatType==5) {
return mm+'/'+dd+'/'+yyyy+' '+hh+':'+mi+':'+ss;
} else if(FormatType == 6) {
return mon + '/' + d + '/' + yyyy + ' ' +
hh + ':' + mi + ':' + ss;
} else if(FormatType == 7) {
return dd + '-' + monthName.substring(0,3) +
'-' + yyyy + ' ' + hh + ':' + mi + ':' + ss;
}
}
Debe ser sencillo con new Date(string)
. Esto debe hacerlo ...
var s = '01-01-1970 00:03:44';
var d = new Date(s);
console.log(d); // ---> Thu Jan 01 1970 00:03:44 GMT-0500 (Eastern Standard Time)
Referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
¿Por qué no es esta la respuesta?Esta es probablemente la respuesta más intuitiva aquí. – hlin117
No en safari. Hacer esto con este formato de cadena da como resultado una fecha no válida – yeahdixon
Más información sobre cuestiones de safari: http://stackoverflow.com/questions/4310953/invalid-date-in-safari Cuando sea posible, le sugiero que utilice el formato de cadena de fecha que es citado en la respuesta aceptada. Esperemos que Safari eventualmente se conforme al estándar. Mientras tanto, es posible que se necesite una biblioteca adicional si esto es un problema para usted. – Luke
usted podría utilizar la biblioteca moment.js.
Después, simplemente:
var stringDate = '01-01-1970 00:03:44';
var momentDateObj = moment(stringDate);
Pedido de su API también, ayuda con el formato, sumar, restar (días, meses, años, otro momento de los objetos).
Espero que esto ayude.
Rhys
¿cómo sabes que tu stringDate está estructurado como dd-mm y no mm-dd con tu respuesta? ¿Qué ocurre si la configuración local de un navegador chino hace referencia al 01-01-1970 como mm-dd-aaaa y si otro navegador está en otra ubicación es dd-mm-aaaa? – themis
Compatible con todos ellos :) –
Para este formato (supuesta datepart tiene el formato dd-mm-aaaa) en javascript llanura:
var dt = '01-01-1970 00:03:44'.split(/\-|\s/)
dat = new Date(dt.slice(0,3).reverse().join('/')+' '+dt[3]);
https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
var unixTimeZero = Date.parse('01 Jan 1970 00:00:00 GMT');
var javaScriptRelease = Date.parse('04 Dec 1995 00:12:00 GMT');
console.log(unixTimeZero);
// expected output: 0
console.log(javaScriptRelease);
// expected output: 818035920000
- 1. Convierte esta cadena para datetime
- 2. Conversión de una cadena a DateTime
- 3. Convierte la cadena a java.util.Date
- 4. cadena a la conversión DateTime en C#
- 5. Rieles: convierte UTC DateTime a otra zona horaria
- 6. Python - Convierte una cadena a la lista
- 7. Convierte cadena a booleana en javascript
- 8. Python convierte literales de cadena a cadenas
- 9. java-me: Convierte la cadena a Boolean
- 10. convierte una cadena a un entero
- 11. Convierte Mes cadena a entero en Java
- 12. Convierte null en cadena
- 13. Convierte cadena en CLLocationCoordinate2D
- 14. LINQ convertir DateTime a la cadena
- 15. perl cómo convertir una cadena a Datetime?
- 16. C# anulable <DateTime> a cadena
- 17. cadena de DateTime objeto
- 18. Convierte cadena al objeto JSON
- 19. Convierte la cadena de fecha y hora relativa al objeto DateTime
- 20. ¿Cómo se convierte una cadena de C++ a un int?
- 21. d programa, analiza o convierte cadena a doble
- 22. MS SQL Server - Convierte la cadena HEX a entero
- 23. C - Convierte long int a cadena hexadecimal firmado
- 24. Javascript/jQuery Convierte la cadena a la matriz
- 25. Cómo el compilador convierte entero a cadena y viceversa
- 26. Convierte una cadena a un nombre de variable
- 27. ¿Cómo convierte django la cadena a los módulos
- 28. cadena de formato con “{0: d}” no convierte a entero
- 29. Convierte std :: cadena a función existente con parámetros en C++
- 30. Convierte pestañas a espacios en una cadena .NET
posible duplicado de http: //stackoverflow.com/questions/476105/how-can-i-convert-string-to-datetime-with-format-specification-in-javascript –
Su pregunta parece ser un duplicado de esta: http://stackoverflow.com/q/476105/684934 – bdares
Compruebe esto; http://stackoverflow.com/a/25961926/1766100 Funcionó para mí. –