好的,我的方法与其他方法不同:
首先,我事先假设了一些事情。
列出事件的人有智能手机(如果它是浏览器,我不必做这些假设):
全球定位系统
HTML5 能力。
Javascript 能力
我应该如何将时间戳保存在数据库中?
解决方案:显然UTC,我在下面覆盖了程序:
步骤 1. 使用Geolocation API 使用用户的 Geolocation
window.onload = getMyLocation;
function getMyLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(displayLocation);
} else {
alert("Oops, no geolocation support");
}
}
function displayLocation(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var div = document.getElementById("location");
div.innerHTML = "You are at Latitude: " + latitude + ", Longitude: " + longitude;
}
步骤 2. 将 (Long,Lat) 作为一些 (Lat,Long) 到 TimeZone api 的参数,例如Yahoo API(使用标志 R 将纬度转换为时区)以获取用户时区。
=>用户时区是在没有用户输入的情况下确定的(我之所以使用它是因为你不能简单地假设用户知道他居住的地方的时区,我只是在几个月后才知道我的时区或某个地方的某事:P,非常愚蠢! )
每个 Event 表都有Timezone
, Event
& 所以也可以有CityName
然后创建另一个基于CityName
s 分类的数据库表。所以这里用户将有两列
|---------------------------------------|
|_____NewYork________|______Sydney______|
| | |
|Event 1 | Event 2 |
|____________________|__________________|
用户界面
=> 使用谷歌日历 API 或一些日历 API
相关阅读:
在不使用 Geonames.org 等 Web 服务的情况下根据纬度/经度确定时区
从纬度经度查找时区
我知道它只是为了展示一些如何解决这个问题的想法。但是,当使用设备 API确定时区时,看看它对用户来说变得多么准确和轻量级
希望能帮助到你!