我会选择添加时区下拉列表并尝试使用JS为它们选择正确的下拉列表,这样您就可以轻松地知道它是从客户端提供给您的.
在服务器上接收数据后,您应该使用此信息将用户日期转换为服务器的时区并进行比较,或者创建一个服务器日期值,该值位于用户提供的时区中并进行检查.
例
// We'll want this for later
$server_timezone = date_default_timezone_get();
// Did the user supply a timezone and is it valid?
if(
$_POST['user_supplied_timezone'] !== '' &&
date_default_timezone_set($_POST['user_supplied_timezone']) === TRUE
)
{
// This accepts yyyy/m/d or yyyy/mm/dd formats
if(
$_POST['user_year'] === date('Y') &&
($_POST['user_month'] === date('n') || $_POST['user_month'] === date('m')) &&
($_POST['user_day'] === date('j') || $_POST['user_day'] === date('d'))
)
{
// TRUE
}
}
// It is officially "later"
date_default_timezone_set($server_timezone);