首先我们来了解什么是utc时间,协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。 中国的时区是utc+8,意思就是比标准的utc时间早8个小时,称东八区。 1.将时间戳转化为当地的时间字符串(注意:时间戳在全世界都是一样的)

时间戳,字符串,和不同时区的转换-LMLPHP

通过上面的例子我们可以看出,我们要转换到对应的时间戳需要得到timeZone的值,我们在转换的时候肯定不能写死这个时区,所以我们要获取

时间戳,字符串,和不同时区的转换-LMLPHP

在本例中,我们定义了一个函数timestampToLocalTime,该函数使用类型为number的时间戳并返回类型为string的本地时间字符串。我们使用Intl.DateTimeFormat().resolvedOptions().timeZone方法来获取用户的时区,然后使用toLocaleString方法将时间戳转换为本地时间字符串。最后,我们使用示例时间戳调用timestampToLocalTime函数。 2.根据一个时间戳获取对应的当前的时间的年月日时分秒周

时间戳,字符串,和不同时区的转换-LMLPHP

您可以将时间戳作为参数传递给此函数,并将返回一个包含年份,月份,日期,小时,分钟,秒和星期几的对象。请注意,getMonth()方法返回从0开始的月份,因此需要添加1以获取实际的月份数字。getDay()方法返回星期几的数字(0表示星期日,1表示星期一等)。 3.将其他时区传回来的时期字符串转换到当前不同时区展示。这里以中国的东八区为例,因为时间字符串是不一样的,时间戳是全世界一样,所以直接用时间字符串转时间戳会造成在同一时刻的时间戳不一样。所以需要将其他时间的字符串转化成当地的时间字符串再转成对应的时间戳。

时间戳,字符串,和不同时区的转换-LMLPHP

您可以将要转换的日期字符串,原始时区和目标时区作为参数传递给此函数。它将返回一个字符串,其中包含转换后的日期和时间,以目标时区为基础。请注意,此函数假定输入的日期字符串是在原始时区中指定的,并且将其转换为UTC时间戳进行计算。 但是上面那个方法必须指定原始时区,指定时区,用户使用程序在操作时候数据库不会记录当前的用户操作的时区,所以当他在不同时区使用的时候我们要根据他所在的时区来显示当前时区对应的他操作的时候的时区时间。我们需要指定一个时区,当然这个时区是数据库存储的时候的时区。如果数据库存储时候没有统一时区那就需要采用时间戳存储。所以此方法针对的是数据库存储的非时间戳且统一时区存储的数据。

时间戳,字符串,和不同时区的转换-LMLPHP
03-22 15:17