Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用与config.time\u zone中设置的时区不同的时区保存日期时间_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 如何使用与config.time\u zone中设置的时区不同的时区保存日期时间

Ruby on rails 如何使用与config.time\u zone中设置的时区不同的时区保存日期时间,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,在application.rb中,我有config.timezone='太平洋时间(美国和加拿大)但我添加了一个功能,需要保存具有不同时区的对象。有没有办法覆盖默认时区?每次我尝试在不同的时区保存时,它默认为Pacific 它是默认为pacific还是计算pacific中的时间 通常,将时间设置为不同的时区只会将时间转换为默认时区中的时间。如果要将第二个变量恢复到原来的状态,然后计算该时区的时间,则必须将其与时区一起保存。它是默认为pacific还是计算pacific中的时间 通常,将时间设置为

application.rb
中,我有
config.timezone='太平洋时间(美国和加拿大)
但我添加了一个功能,需要保存具有不同时区的对象。有没有办法覆盖默认时区?每次我尝试在不同的时区保存时,它默认为Pacific

它是默认为pacific还是计算pacific中的时间


通常,将时间设置为不同的时区只会将时间转换为默认时区中的时间。如果要将第二个变量恢复到原来的状态,然后计算该时区的时间,则必须将其与时区一起保存。

它是默认为pacific还是计算pacific中的时间


通常,将时间设置为不同的时区只会将时间转换为默认时区中的时间。如果要将第二个变量恢复到原来的状态,则必须在时区中保存第二个变量,然后计算该时区中的时间。

如果需要不同的时区,则可以在控制器中使用环绕过滤器对其进行更改


阅读更多有关它的信息

如果您需要不同的时区,您可以使用控制器中的环绕过滤器来更改它


阅读更多关于它的信息

它默认为pacific,我现在有一个时区字段来转换它和使用它的方法,但是如果我可以根据字符串输入保存它会更好。它默认为pacific,我现在有一个时区字段来转换它和使用它的方法,但它会是如果我可以根据输入的字符串和时区来保存它就更好了我假设您已经从包含区域信息的时间字符串中解析了时间,例如:
Time.strtime(“2016-05-25 01:33+05:30”,%Y-%m-%d%H:%m%Z”)
您的问题是ActiveRecord没有将此时间对象保存在由%Z表示的区域中吗?我正在使用jquery datetimepicker,它的输入格式为
2016-05-25 12:00am
,ActiveRecord将其保存为
Sat,2016年5月25日00:00:00 PDT-07:00
。如果我尝试更新datetime属性
对象。update\u属性(:time\u字段,time.in\u time\u zone(“夏威夷”)
它仍会将其保存在太平洋时间,这可能是因为ActiveRecord时区仍设置为“太平洋时间(美国和加拿大)”参考这个答案了解更多信息:是的,但是有没有一种方法可以保持默认的太平洋时间,但同时也可以在不同的时区保存东西?我没有看到任何内置的规定-建议的方法是让数据库将所有时间信息存储在同一时区,并让应用程序执行时区转换。如果您真的需要,我想您将时区保存在单独的字段中的方法是可行的。我假设您已从包含区域信息的时间字符串中解析时间,如:
time.strtime(“2016-05-25 01:33+05:30”,%Y-%m-%d%H:%m%Z”)
您的问题是ActiveRecord没有将此时间对象保存在由%Z表示的区域中吗?我使用的是一个jquery datetimepicker,它的输入格式为
2016-05-25 12:00am
,ActiveRecord将其保存为
Sat,2016年5月25日00:00:00 PDT-07:00
。如果我尝试更新该datetime属性
object.update\attribute(:time\u字段,time.in\u time\u zone(“夏威夷”)
仍将其保存在太平洋时间这可能是因为ActiveRecord时区仍设置为“太平洋时间(美国和加拿大)”参考这个答案了解更多信息:是的,但是有没有一种方法可以保持默认的太平洋时间,但同时也可以在不同的时区保存东西?我没有看到任何内置的规定-建议的方法是让数据库将所有时间信息存储在同一时区,并让应用程序执行时区转换.如果你真的需要这样做,我想你在一个单独的字段中保存时区的方法是最好的选择。Pavan的答案几乎就是我怎么做的。Pavan的答案几乎就是我怎么做的。