Datetime Javascript to Датетиме C#

Я стараюсь посылать объект посредством просьбы POST, однако у меня есть какие-то проблемы с одним из признаков вышеупомянутого объекта (datetime).

date = $("#dpkparam").val();             
fecha = new Date(date.replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"));

var perfil = {};
    perfil.idperfil = 100;
    perfil.nombre = "nuevoperfil";
    perfil.LogFechacrea = fecha;

    $.ajax({
        type: 'POST',
        url: pathservicehost + '/perfiles',
        data: JSON.stringify(perfil),
        dataType: 'JSON',
        contentType: 'application/json; charset=utf-8',
        success: function (data, textStatus, res) {
            alert("Perfil Ok...");
        },
        error: function (e) {
            alert('Perfil Falló... ');
        }
    });

Класс, который он попробовал сохранять в базе данных, - следующий:

public class CPerfil : CGenerico<int>
{
    [DataMember]
    public int idperfil;

    [DataMember]
    public string nombre;

    [DataMember]
    public DateTime LogFechacrea;

}

public void save(CPerfil obj)
{
    using (SEntidades.Entidades ctx = new SEntidades.Entidades())
    {
        perfil objPerfil = new perfil();
        objPerfil.idperfil = obj.idperfil;
        objPerfil.descripcion = obj.nombre;
        objPerfil.log_fechacrea = DateTime.Now;
        //objPerfil.log_fechacrea = obj.LogFechacrea;  error

        ctx.perfil.AddObject(objPerfil);
        ctx.SaveChanges();

        return 1;
    }
}

Ошибка находится в дате... и то, что я нуждаюсь в том, чтобы узнать, каково - способ посылать вышеупомянутый признак.

Спасибо.

3
задан 14.04.2016, 00:54
2 ответа
var date = new Date();
var day = date.getDay();        
var month = date.getMonth();    
var year = date.getFullYear();  
var hour = date.getHours();     
var minute = date.getMinutes(); 
var second = date.getSeconds(); 


var time = day + "/" + month + "/" + year + " " + hour + ':' + minute + ':' + second;

DateTime.ParseExact(YourString, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
2
ответ дан 24.11.2019, 14:35
  • 1
    Всегда это хорошо добавлять один согрешило и # 241; или текст объясняя код ответа:) – jasilva 14.04.2016, 21:00
  • 2
    Спасибо за ответ. – alexander zevallos 14.04.2016, 22:48

Использует книжный магазин moment.js , чтобы форматировать твою дату, JSON может последовательно преобразовывать ее в клиенте и deserializarla на сервере

date = $("#dpkparam").val();             
fecha = moment(date).format();

var perfil = {};
perfil.idperfil = 100;
perfil.nombre = "nuevoperfil";
perfil.LogFechacrea = fecha;

$.ajax({
    type: 'POST',
    url: pathservicehost + '/perfiles',
    data: JSON.stringify(perfil),
    dataType: 'JSON',
    contentType: 'application/json; charset=utf-8',
    success: function (data, textStatus, res) {
        alert("Perfil Ok...");
    },
    error: function (e) {
        alert('Perfil Falló... ');
    }
});

ExplicaciГіn:

moment (восходил) .format () обрати формат даты в МЕЖДУНАРОДНУЮ ОРГАНИЗАЦИЮ ПО СТАНДАРТИЗАЦИИ-8601 сохраняя информацию о всеобщем скоординированном времени

В post сервера:

у полученной даты есть свойство DateTimeKind = Локальный.

, Чтобы сохранять дату на сервере базы данных, ты должен менять свойство DateTimeKind в DateTimeKind. Utc

objPerfil.log_fechacrea=  objPerfil.log_fechacrea.ToUniversalTime();

В GET сервера

Перед тем, как посылать дату сервера клиенту, ты должен обеспечивать себе, что свойство DateTimeKind было Utc

objPerfil.log_fechacrea=  DateTime.SpecifyKind(objPerfil.log_fechacrea, DateTimeKind.Utc);

En клиент

Таким образом, JSON пойми, что он должен применять офсет, определенный в формате всеобщем скоординированном времени и показывать местное время.

Это помогло очень

2
ответ дан 24.11.2019, 14:35
  • 1
    Большое спасибо из-за твоего ответа... я попробую твой soluci и # 243; n. Привет. – alexander zevallos 14.04.2016, 22:49