Qualcuno sa come analizzare la stringa di data nel formato richiesto dd.mm.yyyy
?Parse stringa DateTime in JavaScript
risposta
See:
Codice:
var strDate = "03.09.1979";
var dateParts = strDate.split(".");
var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
Oops ..un piccolo boo-boo - il costruttore di date appare in questo modo: new Date (anno, mese, data [, ora, minuto, secondo, millisecondo]) quindi è necessario modificare l'ordine di dataLe parti all'interno del costruttore . –
@ Salman: grazie e giusto. riparato –
Un altro boo-boo. Il costruttore di date JavaScript è strano nel modo in cui gestisce i mesi. Considera 0 per gennaio, 1 per febbraio, ecc. La riga nel codice sopra dovrebbe apparire così: var data = new Date (dateParts [2], datePartts [1] - 1, datePartts [0]) ; –
Usiamo questo codice per verificare se la stringa è una data valida
var dt = new Date(txtDate.value)
if (isNaN(dt))
il formato specificato non corrisponde al formato richiesto da https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/parse (e quindi il costruttore Date non sarà sufficiente) –
Ha funzionato per me utilizzando gg MMM yyyy format so thanx :) – JumpingJezza
Questo test non verifica affatto le date valide, ma verifica solo se il costruttore Date può creare una data valida dall'input. I due non sono la stessa cosa – RobG
Se si utilizza jQuery UI, è possibile formattare qualsiasi data con:
<html>
<body>
Your date formated: <span id="date1"></span><br/>
</body>
</html>
var myDate = '30.11.2011';
var parsedDate = $.datepicker.parseDate('dd.mm.yy', myDate);
$('#date1').text($.datepicker.formatDate('M d, yy', parsedDate));
+1 Non vedo come totalmente fuori ambito, JavaScript e JQuery sono una combinazione comune. – djna
sviluppatori ASP.NET hanno la scelta di questo pratico incorporato in (MS JS deve essere incluso nella pagina):
var date = Date.parseLocale('20-Mar-2012', 'dd-MMM-yyyy');
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
OP non menziona che usa ASP.NET – Raptor
Questa funzione gestisce anche il 2001/02/29 data non valida.
function parseDate(str) {
var dateParts = str.split(".");
if (dateParts.length != 3)
return null;
var year = dateParts[2];
var month = dateParts[1];
var day = dateParts[0];
if (isNaN(day) || isNaN(month) || isNaN(year))
return null;
var result = new Date(year, (month - 1), day);
if (result == null)
return null;
if (result.getDate() != day)
return null;
if (result.getMonth() != (month - 1))
return null;
if (result.getFullYear() != year)
return null;
return result;
}
arbitri: http://momentjs.com/docs/#/parsing/string/
Se si utilizza moment.js, è possibile utilizzare la modalità + "stringa" "formato"
moment(String, String);
moment(String, String, String);
moment(String, String, Boolean);
moment(String, String, String, Boolean);
es:
moment("12-25-1995", "MM-DD-YYYY");
Per la maggior parte dei casi, MomentJS è eccessivo, poiché l'uso di JavaScript puro richiede solo centinaia di byte, mentre MomentJS è 12,3kb gzip. Conveniente per gli sviluppatori ma rallenta il sito web. Non vale. – Raptor
I 'stato usato seguendo il codice in IE. (Compatibile IE8)
var dString = "2013.2.4";
var myDate = new Date(dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1"));
alert("my date:"+ myDate);
è possibile formattare la data solo facendo questo tipo di codice. In javascript.
// for eg.
var inputdate=document.getElementById("getdate").value);
var datecomp= inputdate.split('.');
Var Date= new Date(datecomp[2], datecomp[1]-1, datecomp[0]);
//new date(Year,Month,Date)
Si suppone che si utilizzi javascript non jquery in quanto non vi è alcun tag jquery – Sagar
felice ... il significato è comprendere solo il senario – Bachas
Bene. Non penso che il tuo esempio sia diverso da quello di Martin Staufcik. In realtà la sua risposta ha una logica aggiuntiva per gestire le date non valide. – Sagar
Vuoi creare un nuovo oggetto data da una stringa in quel formato? –