C# 带时区的时间戳

C# 带时区的时间戳,c#,php,xamarin,xamarin.forms,C#,Php,Xamarin,Xamarin.forms,我正在编写一个应用程序,用户可以张贴,它保持一个时间戳。我使用date('Y-m-dh:I:s')在PHP中生成时间戳。然后,当我显示帖子时,应用程序会计算时间差,以c#表示,以时间为单位显示,例如1天前或1小时前,当您查看帖子信息时,它会在数据库中显示确切的日期 问题是,当我创建一个帖子时,它显示为8小时前的样子,因为PHP数据库与手机不在同一时区。我想在PHP中计算时间,但是在PostDate中,它将被关闭 此外,我也不能在设备时间之外完成此操作,以防用户更改其设置,然后他们可以更改其追溯年

我正在编写一个应用程序,用户可以张贴,它保持一个时间戳。我使用
date('Y-m-dh:I:s')
在PHP中生成时间戳。然后,当我显示帖子时,应用程序会计算时间差,以c#表示,以时间为单位显示,例如1天前或1小时前,当您查看帖子信息时,它会在数据库中显示确切的日期

问题是,当我创建一个帖子时,它显示为8小时前的样子,因为PHP数据库与手机不在同一时区。我想在PHP中计算时间,但是在PostDate中,它将被关闭


此外,我也不能在设备时间之外完成此操作,以防用户更改其设置,然后他们可以更改其追溯年份和post,这将产生错误。

通常,最佳做法是以UTC时间在服务器上生成时间戳,然后在必要时在客户端上调整时间戳,以显示在用户的本地时间


您可以使用php函数获取当前UTC时间。

通常,最佳做法是在服务器上以UTC时间生成时间戳,然后在必要时在客户端上调整时间戳,以显示在用户的本地时间


您可以使用php的函数获取当前UTC时间。

使用ToLocalTime我尝试使用
gmdate('Y-m-d H:i:s')
Convert.ToDateTime(message.TimeStamp).ToLocalTime()
但在我发布时显示为8小时前。请尝试在时间末尾添加“Z”-请参阅。或者使用一种不太含糊的传递日期时间的方法,比如time()使用ToLocalTime。我尝试使用
gmdate('Y-m-dh:i:s')
Convert.ToDateTime(message.TimeStamp).ToLocalTime()
来传递日期时间,但它在我发布时显示为8小时前。请尝试在时间末尾添加“Z”-请参阅。或者使用不那么模棱两可的方法传递日期时间,如time()