Originariamente inviato da andr3a
uhm, solitamente i timestamp sono tutti uguali, partono dal 1/1/1970, mi sembra strano non ci sia un modo di convertire una data in time con un solo metodo, magari è così e .NET sfrutta una data file tutta sua, anche se sono certo basti indagare un pò per capire il perchè di quegli esatti 369 anni di differenza e come ovviare.
i 369 anni si trovano subito
DateTime.ToFileTime() restituisce un intero a 8 byte privo di segno che rappresenta la data e l'ora come numero di intervalli da 100 nanosecondi trascorsi dall'1/1/1601 12 AM. Mentre javascript richiede il numero di millisecondi trascorsi dal 1/1/1970. E 1970 - 1601 = 369
così funziona
codice:
var data_server = new Date( <%=DateTime.Now.Year%>, /* anno */
<%=DateTime.Now.Month - 1 %>, /* mese - 1 */
<%=DateTime.Now.Day %>, /* giorno */
<%=DateTime.Now.Hour %>, /* ora */
<%=DateTime.Now.Minute %>, /* minuto */
<%=DateTime.Now.Second %> );/* secondo */
var dd = new Date(<%=Convert.ToInt64(DateTime.Now().Subtract(New DateTime(1970, 1, 1)).TotalMilliseconds)%> );
document.getElementById("div1").innerHTML = data_server + "
" + dd ;
ottengo
Sat Apr 14 20:34:49 UTC+0200 2007
Sat Apr 14 22:34:49 UTC+0200 2007