我在理解如何将用户当前日期和时间与服务器时间相匹配时遇到了一些麻烦。
示例:假设我有一个用户可以注册自己的网站。一种配置文件选项是他们可以选择当地时区。为此,有一个下拉菜单,他们可以从中选择正确的时区。因此,来自中国的用户可能会选择 (UTC+08:00) 北京、重庆、香港、乌鲁木齐,来自洛杉矶的另一个用户将选择 (UTC-07:00) 山区时间(美国和加拿大)(我假设)和来自巴黎的人将选择 (UTC+01:00) 布鲁塞尔、哥本哈根、马德里、巴黎。
Web 应用程序在美国的服务器上运行,具有特定的时区......
现在......所有这些用户都希望在下周五的 19:00 收到他们当地时区的电子邮件通知!!!
在这里,我迷路了...对于所有这些用户来说,下周五 19:00 肯定不是同一时间...
如何映射他们的个人资料时区,以便我网站上运行的服务将在下周五 19:00 用户本地时区发送电子邮件通知???
我目前正处于这个阶段......用所有时区填充下拉菜单,以便用户可以在他们的个人资料中选择他们当前的时区。
当页面加载比下拉列表填充时区时:
protected void Page_Load(object sender, EventArgs e)
{
ddlUserTimeZone.DataSource = GetTimeZones();
ddlUserTimeZone.DataTextField = "Name";
ddlUserTimeZone.DataValueField = "ID";
ddlUserTimeZone.DataBind();
}
public Collection<TimeZoneItem> GetTimeZones()
{
Collection<TimeZoneItem> timeZones = new Collection<TimeZoneItem>();
foreach (var timeZoneInfo in TimeZoneInfo.GetSystemTimeZones())
{
timeZones.Add(new TimeZoneItem
{
TimeZoneName = timeZoneInfo.DisplayName,
TimeZoneID = timeZoneInfo.Id
});
}
return timeZones;
}
public struct TimeZoneItem
{
public string TimeZoneName { get; set; }
public string TimeZoneID { get; set; }
}
现在,你们能帮忙将个人资料时区与当前时间匹配,以便在正确的时间发送电子邮件吗?
提前致谢!