我正在使用ASP MVC 4.5。我有意輸入付款細節。當用戶輸入付款時,我使用C#獲取當前時間。但是在將它託管在服務器上之後,我發現了一個熱門錯誤。它會得到另一個dateTime(可能是我服務器的時間),而不是我用戶的本地時間! 我想用C#獲取用戶的當前時間。我應該使用C#還是JavaScript? 我認爲使用javascript很容易獲得用戶的時間。但是我想爲此使用C#。你可以幫我嗎? 我的網絡API:獲取本地日期時間,而不是服務器端代碼中的服務器DateTime C#
// POST api/PaymentApi
public HttpResponseMessage PostPayment(Payment payment)
{
if (ModelState.IsValid)
{
var mem= db.Members.Where(m => m.MemberID.Equals(payment.MemberID)).FirstOrDefault();
if (mem ==null)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
payment.Date = DateTime.Now;
db.Payments.Add(payment);
db.SaveChanges();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, payment);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = payment.PaymentID }));
return response;
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
我用payment.Date = DateTime.Now.ToLocalTime();
也但不工作的!
許多在這裏回答使用JavaScript日期。這就是我使用它的原因。但是,JavaScript發送日期時間,我的WebApi使它稍有不同。
的Javascript:Date:Tue Dec 27 2016 11:04:12 GMT+0600 (Local Standard Time)
C#:Date:{27/12/2016 05:04:12}
你檢查了文化嗎? –
在服務器*上運行*的任何.NET代碼將只能看到*服務器時間*。你需要做的是在客戶端上運行代碼以獲取那裏的時間,然後將其發送到服務器。但是,是什麼讓你認爲時間將與你的服務器有很大的不同?你確定你不想要UTC時間嗎? –
不,我只是想獲得客戶的時間誰將提交付款。 – Fawel