Значение DateTime изменится после того, как я отправлю его на сервер и получу обратно - PullRequest
0 голосов
/ 25 ноября 2018

Я использую метод DateTime.Now, чтобы получить местное время на компьютере, а затем отправить его с моделью на сервер ASP.NET.

Значение DateTime, которое я отправляю:

The DateTime value i post

Значение DateTime, которое я получаю от сервера:

The DateTime value i get from server

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

Метод Post на сервере ASP.Net:

public async Task<IHttpActionResult> PostTimeCap(TimeCap timeCap)
{
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        List<TimeCap> l = db.TimeCaps.ToList();
        TimeCap lastCap;

        if (l.Count > 0)
        {
            lastCap = l[l.Count - 1];

            for (int i = l.Count - 1; i >= 0; i--)
            {
                if (l[i].userind == timeCap.userind && lastCap.date < l[i].date && !l[i].isPairDefined)
                {
                    lastCap = l[i];
                }
            }
        }
        else
        {
            lastCap = null;
        }

        if (timeCap.typeOfCap == "open")
        {
        }
        else if(timeCap.typeOfCap == "overwork")
        {
        }
        else if(timeCap.typeOfCap == "close")
        {
            if (lastCap != null)
            {
                if (lastCap.typeOfCap == "open" || lastCap.typeOfCap == "overwork")
                {
                    timeCap.isPairDefined = true;
                    timeCap.pairIndex = lastCap.id;
                    lastCap.isPairDefined = true;
                    await PutTimeCap(lastCap.id, lastCap);
                    double totalSec = (timeCap.date - lastCap.date).TotalSeconds;
                    totalSec = totalSec / 3600;
                    timeCap.workhours = (float)totalSec;
                }
                else
                {
                    //DeleteTimeCap(lastCap.id);
                    //TimeCap lc = FindLastCap(timeCap.userind);
                    //timeCap.isPairDefined = true;
                    //timeCap.pairIndex = lc.id;
                }
            }
        }

        db.TimeCaps.Add(timeCap);
        await db.SaveChangesAsync();

        return CreatedAtRoute("DefaultApi", new { id = timeCap.id }, timeCap);
}

Метод Get на сервере:

public IQueryable<TimeCap> GetTimeCaps()
{
    return db.TimeCaps;
}

Наклиент:

TimeCap t = new TimeCap
            {
                date = DateTime.Now,
                typeOfCap = "overwork",
                userind = DataStaticStorage.userId,
                isPairDefined = false,
                isVerifyed = false,
                pairIndex = 0,
                imgIndex = imgstr,
                workhours = 0f
            };

И когда я получаю с сервера:

t.dateStr = tp[i].date.ToString("F");

Мне нужно опубликовать дату и затем получить ее обратно без изменений.

Я скучаюбольшой осколок знаний о DateTime и Asp.net?

Мое местное время GMT +6 (Казахстан, Астана)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...