Sitecore:在 sitecore 字段中保存日期,type="DateTime" from <Input type="text">

Sitecore: Save date in sitecore field with type="DateTime" from <Input type="text">

如果我的页面中有一个 html 控件。

<input type="text" id="dateFrom" runat="server" ClientIDMode="Static"/>

单击按钮时,我将输入 dateFrom 的值保存到类型为“DateTime”的 Sitecore 项目字段中

代码隐藏:

item["Visible From"] = dateFrom.Value;

我正在使用 Jquery 当用户在输入框内单击时显示日历 dateFrom

$(function () {
        $("#dateFrom").datepicker();
    });

保存项目后,我在 "Content Editor" 中看到的结果是:

正确的日期有些保存不了。我也试过 <asp:TextBox 而不是 <input type="text" 但仍然是相同的结果。

日期以 ISO 8601 格式存储在后端,使用 Sitecore 辅助方法将其转换为正确格式:

var dateTime = DateTime.Parse(dateFrom.Value);
var isoDate = DateUtil.ToIsoDate(dateTime);
item["Visible From"] = isoDate ;

您可以在这篇文章中找到有关 Using DateTime And Date Fields In Sitecore

的更多信息

日期以其自己的(基于字符串的)格式存储在 Sitecore 中。如果您从上面的菜单中选中 View --> Raw Vales,您可以检查一下。

Sitecore 有自己的帮助程序 class,称为 DateUtil 来处理日期和时间。

string storedDateTimeValue = DateUtil.DateTimeToIsoDate(DateTime.Now);

或反向操作:

DateTime dt = DateUtil.IsoDateToDateTime(storedDateTimeValue);

Here is 有点过时,但关于 DateUtil class API.

的信息是正确的