在 Orchard 中,我有一个包含日期时间字段的自定义内容类型。我创建了一条规则,用于在提交新内容项时发送电子邮件。我可以使用以下 token 在电子邮件中包含日期时间字段的值:
{Content.Fields.MyContentType.MyDateTimeField}
我遇到的问题是替换 token 的日期/时间值采用 UTC 格式,我需要它位于为我的 Orchard 实例配置的时区中。
我看到当前日期/时间有一个标记,如下所示:
{Date.Local}
但是 .Local 似乎在 DateTime 字段标记上无效。
看起来创建一个自定义 token 提供程序来解决这个问题并不太难,但在我这样做之前,我想确保我没有错过一个更简单的现有解决方案。
最佳答案
日期 token 确实有一个 Local
子 token ,但这里的问题是 {Content.Fields.MyContentType.MyDateTimeField}
不是日期 token ,它仍然只是场。您需要获取其实际值。如果您查看 FieldTokens.cs
,您将看到日期字段标记有一个 DateTime
标记。所以 {Content.Fields.MyContentType.MyDateTimeField.DateTime.Local}
应该可以达到我认为的目的。
关于orchardcms - 将电子邮件规则中的日期时间字段标记转换为本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386048/