我想使用C#在我的MongoDB表中保存日期。
这是一个使用Ajax将数据发送到C#controller
的JavaScript逻辑mocha --timeout 10000
这是将数据保存在MongoDB中的C#逻辑:
$(function ($, w, d) {
var _user = {}
//var time = moment("2016-04-02", "YYYYMMDD").fromNow()
//var bime = moment().endOf('day').fromNow();
//var crime = moment("20120620", "YYYYMMDD").fromNow();
// document.getElementById('time').innerHTML = time;
var obj = {};
var holidaylist = ["Mar-31-2018", "Apr-01-2018","Apr-04-2018","Apr-07-2018","Apr-08-2018"];
var startdate = new Date("Apr-02-2018");
obj.endDate = "Apr-06-2018";
obj.holidaylist = holidaylist;
obj.NumberOfCount = 9;
CallAjax("POST", '/LeaveManagement/', 'checkleavelogic', obj, onsuccessaddemployee, '');
现在这是保存为上一个日期的MongoDB表。
在这里,您可以看到我的public JsonResult checkLeaveLogic(LeaveLogicModel leaveLogic)
{
string strconnectiomstring = "mongodb://10.10.32.125:27017";
MongoClient Client = new MongoClient(strconnectiomstring);
var DB = Client.GetDatabase("TimeClock");
List<DateTime> leavesDate = new List<DateTime>();
var collection = DB.GetCollection<LeaveLogicModel>("leaves1");
collection.InsertOne(leaveLogic);
}
4月02-2018 ,但它保存为 Apr-01-2018 ,并且所有日期都是相同。
有人可以告诉我哪里错了吗?
答案 0 :(得分:0)
当您使用日期或日期和时间创建新日期时,通常会在与程序相同的时区中创建它们。
因此,如果您不指定时区,它将成为服务器所在的时区。当您保存到Mongo时,日期序列化为UTC - &gt;零时区。
使用+00:00时区创建日期,您应该拥有一致的数据。
答案 1 :(得分:0)
将日期时间设置为UTC是个不错的做法,但是如果要转换它,可以使用类似的东西。
var date = DateTime.UtcNow;
TimeZoneInfo.ConvertTime(date, TimeZoneInfo.Local);