单击创建按钮时如何将当前时间存储到我的数据库中?
How can I store the current time to my database when create button clicked?
我正在 MVC 中进行 CRUD 操作。我也在使用实体 Framework.I 只向用户显示 table 的 12 个值(还有 currenttime(createDateTime) 值,用户在创建之前看不到)。当我单击创建按钮时。
它应该保存我在编辑器字段上写的所有值,并将当前时间保存到数据库。
创建视图
<div class="form-group">
@Html.LabelFor(model => model.languageID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.languageID, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.languageID, "", new { @class = "text-danger" })
</div>
</div>
控制器
[HttpPost][ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,projectLink,projectText,projectImageURL,isPassive,createDateTime,createUsername,updateDateTime,updateUsername")] cusContentProjects cusContentProjects)
{
if (ModelState.IsValid)
{
db.cusContentProjects.Add(cusContentProjects);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(cusContentProjects);
}
你可以这样做:
cusContentProjects.createDateTime = DateTime.Now; //Server current datetime
db.cusContentProjects.Add(cusContentProjects);
db.SaveChanges();
return RedirectToAction("Index");
您可以使用 DateTime.Now 获取当前日期
您应该从服务器获取日期时间,因为从用户的 PC 获取它可能不是正确的日期。
你可以这样做:
using System; //lib that allow you to use DateTime
...
[HttpPost][ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,projectLink,projectText,projectImageURL,isPassive,createDateTime,createUsername,updateDateTime,updateUsername")] cusContentProjects cusContentProjects)
{
if (ModelState.IsValid)
{
db.cusContentProjects.Add(cusContentProjects);
var date = DateTime.now; //save it wherever you need
db.SaveChanges();
return RedirectToAction("Index");
}
return View(cusContentProjects);
}
请记住,您保存 DateTime 的变量也需要是 DateTime 类型。
希望对您有所帮助。
祝你好运!
使用 UTC 日期值,然后根据 UI 要求解析为本地。
在 db 中以 UTC 格式存储日期时间总是可以避免日期时间计算错误和夏令时期间的时间更改。
DateTime.UtcNow
我正在 MVC 中进行 CRUD 操作。我也在使用实体 Framework.I 只向用户显示 table 的 12 个值(还有 currenttime(createDateTime) 值,用户在创建之前看不到)。当我单击创建按钮时。 它应该保存我在编辑器字段上写的所有值,并将当前时间保存到数据库。
创建视图
<div class="form-group">
@Html.LabelFor(model => model.languageID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.languageID, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.languageID, "", new { @class = "text-danger" })
</div>
</div>
控制器
[HttpPost][ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,projectLink,projectText,projectImageURL,isPassive,createDateTime,createUsername,updateDateTime,updateUsername")] cusContentProjects cusContentProjects)
{
if (ModelState.IsValid)
{
db.cusContentProjects.Add(cusContentProjects);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(cusContentProjects);
}
你可以这样做:
cusContentProjects.createDateTime = DateTime.Now; //Server current datetime
db.cusContentProjects.Add(cusContentProjects);
db.SaveChanges();
return RedirectToAction("Index");
您可以使用 DateTime.Now 获取当前日期
您应该从服务器获取日期时间,因为从用户的 PC 获取它可能不是正确的日期。
你可以这样做:
using System; //lib that allow you to use DateTime
...
[HttpPost][ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,projectLink,projectText,projectImageURL,isPassive,createDateTime,createUsername,updateDateTime,updateUsername")] cusContentProjects cusContentProjects)
{
if (ModelState.IsValid)
{
db.cusContentProjects.Add(cusContentProjects);
var date = DateTime.now; //save it wherever you need
db.SaveChanges();
return RedirectToAction("Index");
}
return View(cusContentProjects);
}
请记住,您保存 DateTime 的变量也需要是 DateTime 类型。
希望对您有所帮助。 祝你好运!
使用 UTC 日期值,然后根据 UI 要求解析为本地。 在 db 中以 UTC 格式存储日期时间总是可以避免日期时间计算错误和夏令时期间的时间更改。
DateTime.UtcNow