1

我正在开发一个应用程序,该应用程序可以选择上传图像(与 instagram 的方式几乎相同)。数据库的设计方式是,每次在数据库中为上传的图像创建一行时,我都会保存所创建行的时间戳。当用户尝试获取上传的图像时,此日期将发送回移动应用程序。

所以我现在面临的问题是,创建的日期是服务器所在国家/地区的特定日期(现在我使用的是亚马逊服务器)。如果我现在上传一张图片,并尝试立即获取它,它会告诉我它是在 6 小时前上传的。

我对此的解决方案之一是将 GPS 位置与上传的图像一起发送。但问题在于,iPhone 应用程序会询问用户是否允许该应用程序使用 GPS。那么,如果用户否认这一点怎么办。此外,该应用程序适用于安卓系统,某些手机可能甚至没有内置 GPS。

我将 php 用于我的后端代码和 mysql 数据库。

提前致谢。泽山

4

3 回答 3

2

通常,您使用 UTC 在后端保存时间戳。

显示时间时,您使用设备的本地时区来显示正确的本地时间。

于 2013-09-12T03:06:42.220 回答
2

通过始终存储UTC时间而不是本地时间,然后在向用户显示时将其转换为适当的时区,您的工作会变得更加简单。

也就是说......从mysql获取时间时,您可以使用convert_tzmysql函数将时间从服务器时区转换为UTC。将此 UTC 时间发送给客户端并将其转换为用户的本地时区。

于 2013-09-12T03:11:46.063 回答
0

试试这将适用于 UTC 时间戳

public  String getDateStringCurrentTimeZone(long timestamp) {

        Calendar calendar = Calendar.getInstance();
        TimeZone t = TimeZone.getDefault();

        calendar.setTimeInMillis(timestamp * 1000);
        calendar.add(Calendar.MILLISECOND, t.getOffset(calendar.getTimeInMillis()));

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = sdf.format(calendar.getTime());
        return dateString;
    }
于 2013-09-12T04:49:33.027 回答