Rails jquery 日期选择器时区

2024-02-10

我在尝试使用 Rails 处理 JQuery 日期/时间选择器中的时区时遇到问题。日期选择器正确显示当地时区。问题出现了,当我将所选日期保存到数据库中时,rails 会将其保存为 UTC 时间,即使该时间位于客户端的时区中。当我尝试将时间转换为 utc (Time.zone.parse(params[:time]).utc ) 时,它给出与 params[:time] 相同的值,即当地时间。

我不想更改environment.rb文件中config.time_zone的设置,因为我也不希望将时间保存在服务器的本地时区中。

我想要做的是接收本地时间,并将其转换为 utc,这样我就可以在时间设置为 utc 的服务器上安排 cron 作业。我想将时间保存在数据库中,作为用户的本地时区......但我无法找到获取客户端时区的方法!

除了将时区添加为日期选择器上的选项之外,我还有其他选择吗?


DateTime Picker 为您的视图提供了用户的正确时间 - 之后由您来解析时间、调整用户的时区,并通过添加或减去适当的小时数来相应地安排您的 cron 作业。我是这样做的:

# convert your param from a datepicker string to time:

start_time=DateTime.strptime(params[:start_time], "%m/%d/%Y %H:%M:%S").to_time

 # datepicker gives times in UTC to your server *BUT* it appears in the local time to the user. Make sure to adjust for this time difference.

start_time = start_time.in_time_zone(current_user.time_zone) # I let users pick their time zone.

 # account for DST. does this work? I think so.
 offset = (start_time.utc_offset)/60/60

 # now adjust by the hours offset.  you likely want to keep the time in utc for your database...

 adjusted_start_time = (start_time-offset.hours).utc

来自另一个 SO 帖子的相关信息在 Rails 3 中将 UTC 转换为本地时间 https://stackoverflow.com/questions/5300493/convert-utc-to-local-time-in-rails-3:

# Rails has it's own names. See them with: rake time:zones:us To see other zone-related rake tasks: rake -D time

# So, to convert to EST, catering for DST automatically:

Time.now.in_time_zone("Eastern Time (US & Canada)")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails jquery 日期选择器时区 的相关文章

  • 如何让 Sidekiq 在 Heroku 上运行?

    这是我第一次尝试让 Redis 在 Heroku 上运行 我添加了一个工作dyno 就在今天 所以还没有付款 添加了RedisToGo Nano附加组件 在我的本地机器上测试了后台作业 并将应用程序推送到heroku heroku ps g
  • jQuery 已弃用“.toggle()”。寻求替代方法

    Since toggle was 已弃用 http bugs jquery com ticket 11786从 jQuery 我正在寻找一个新的简单解决方案 它将使我能够创建一个 阅 读更多 按钮 该按钮可以向下滑动一个段落 同时将按钮文本
  • jQuery - 如何检查元素是否存在?

    我知道你可以测试width or height 但是如果元素的 display 属性设置为 none 该怎么办 还有什么其他值可以检查以确保该元素存在 您可以使用length http api jquery com length 查看您的选
  • 在窗口调整大小 jquery 上调整元素宽度

    我正在使用 jq 计算页面加载时的元素宽度并且工作正常 尝试自动调整窗口大小 但有点不起作用 期望的效果 框应在窗口大小调整时自动调整大小 而不是下拉 http jsfiddle net yMcXm 4 http jsfiddle net
  • Rails 3.2 防止使用错误保存对象

    我有一个 ActiveRecord 对象 我想阻止它被保存 而不对模型进行永久验证 你曾经可以使用做这样的事情errors add但它看起来不再有效了 user User last user errors add name name doe
  • 如何更改 ModelForm 中所有 Django 日期字段的默认小部件?

    给定一组典型模型 Application A from django db import models class TypicalModelA models Model the date models DateField Applicati
  • Bootstrap 表单助手未选择完整的国家/地区名称

    我添加了引导表单助手来列出国家及其州 最初 它根本没有选择国家名称 但我设法用 jQuery 检索国家 地区名称 但它没有显示完整名称 这是表单的完整代码 div class signup form div class container
  • jQuery 更改事件未在输入元素上触发

    首先 我检查了与我的问题类似的每个主题 不幸的是 我还没有找到答案 我尝试结合一些答案 但没有成功 注 刚开始学习jQuery 所以这是我的问题 我创建了一个带有四个文本输入和一个按钮的表单 每个输入内部都有一个 svg 图标和一个占位符文
  • 选择移动 Web HTML5 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 认为 Sphinx 没有为新添加的记录建立索引

    我正在使用 sphinx 搜索 2 个模型及其关联 我正在使用增量索引 在我的开发盒上 在开发模式 Ubuntu 下一切正常 但是 在暂存盒生产环境中 当我创建新记录时 我需要再次构建索引以使新创建的记录可搜索 甚至奇怪的是 当我使用脚本
  • jQuery.getJSON:如何避免在每次刷新时请求 json 文件? (缓存)

    在此示例中 您可以看到生成的 HTML 列表 每次刷新时 脚本都会请求数据文件 ajax test json 并再次构建列表 生成的文件 ajax test json 被静态缓存 但是如何避免在每次刷新时请求此文件 source jquer
  • 如何让 Redis 在 Heroku 上启动?

    我已经添加了RedistogoHeroku 上的 nano 插件 我已经在控制台中成功测试了它 但是 当我的应用程序尝试连接 Redis 时 出现以下错误 Heroku 日志文件 2011 10 12T08 19 50 00 00 app
  • Highstock highcharts 不规则数据的 x 尺度错误

    我有不规则的数据 我使用时图表绘制得很好高图表 function var chart new Highcharts Chart chart renderTo chart xAxis type datetime series name Vol
  • 使用 Ruby 重命名 S3 中的对象

    我想使用 Ruby sdk 重命名 s3 中的项目 我该怎么做呢 我努力了 require aws sdk s3 AWS config region gt region access key id gt key secret access
  • 检查 DOM 元素是否为复选框

    如何检查给定的 DOM 元素是否为复选框 设想 我有一组文本框和复选框 其中的值是动态分配的 我没有办法识别 DOM 元素是复选框还是文本框 只使用普通的 javascript 你就可以做到 if el type el type check
  • 具有行组的 JQuery 斑马条纹表

    我通常将斑马条纹表行设置为奇数 偶数 如下所示 效果很好 table tbody tr visible even this addClass even table tbody tr visible odd this addClass odd
  • Jquery:如何隐藏或关闭所有打开的引导工具提示

    这样我就可以从我的验证函数中显示引导工具提示 var options html true placement bottom title div class tooltip alert alert danger message div inp
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • 常规 JavaScript 可以与 jQuery 混合使用吗?

    例如 我可以采用这个脚本 来自 Mozilla 教程 https developer mozilla org en Canvas tutorial Basic usage

随机推荐

  • Curl 只能读取前 2000 个字节吗?

    我使用了 char URL file d temporal prueba1 txt 的curl 来测试使用硬盘驱动器文件来测试接收到的数据 我有以下问题 跳过大文件中的前 2 个字符 已解决 读取数据时出错 我只想只读一次 最好是前 200
  • 通过命令行在 Chrome 中打开网址而不使用缓存

    我使用命令chrome new window htp www example com 打开一个 url 但页面是使用上次保存在缓存中的打开的 有没有办法从命令行打开 URL 强制加载而忽略缓存 Thanks 尝试以下命令 usr bin g
  • 如何从业务/模型类发送进度更新?

    假设我们有一个具有分层架构的应用程序 在视图上我们使用 MVC 或 MVVM 模型被视为域 它有很好的业务逻辑部分 现在假设我们在模型中有一个需要一些时间的方法 例如 必须对对象的每个项目进行复杂的计算或处理 在 UI 中 我们希望显示一个
  • 在 Google Colab 上训练模型时,我应该保持连接吗?

    在 Google Colab 上训练用于对象检测的数据集模型 Darknet 时 我是否需要保持与 Colab 和互联网的连接 当训练在 Colab 上进行并连接到我的驱动器时 这里的权重文件将保存在我的谷歌驱动器文件夹中 那么 我可以断开
  • R中的参数传递机制

    下面的函数用于将一个序列相乘1 x by y f1 lt function x y return lapply 1 x function a b b a b y 好像a用于表示序列中的元素1 x 但是不知道如何理解这个参数传递机制 在其他
  • java.io.File 中 mkdir() 和 mkdirs() 之间的区别

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 谁能告诉我这两种方法之间的区别 file mkdir file mkdirs mkdirs 还创造了父目录在这个路径中File代表 jav
  • 从常规 ES6 类方法调用静态方法

    调用静态方法的标准方法是什么 我可以考虑使用constructor或者使用类本身的名称 我不喜欢后者 因为它感觉没有必要 前者是推荐的方式 还是还有其他方式 这是一个 人为的 示例 class SomeObject constructor
  • jQuery - keydown / keypress /keyup ENTERKEY 检测?

    尝试让 jQuery 检测 Enter 输入 但检测到空格和其他键 未检测到 Enter 下面有什么问题 entersomething keyup function e alert up var code e keyCode e keyCo
  • RxJS 运算符在事件流中等待安静期,但在事件流繁忙的情况下不会永远等待

    场景 我有一个事件流 每个事件都应该导致信息的更新显示 事件流来自 websockets 显示在 highcharts 图表中 但这并不重要 出于性能原因 我不想为每个事件触发 UI 更新 我宁愿做以下事情 当我收到一个事件时 我只想更新
  • 帮我用“apply”函数替换 for 循环

    如果可能的话 我的任务是找到用户连续参与游戏的最长连续天数 我没有编写 sql 函数 而是选择使用 R 的 rle 函数来获取最长的条纹 然后用结果更新我的数据库表 附加的 数据框是这样的 day user id 2008 11 01 20
  • 日语字符的正则表达式

    我正在 Struts 中进行国际化 我想为日语和英语用户编写 Javascript 验证 我知道英语的正则表达式 但不知道日语用户的正则表达式 是否可以为两个用户编写一个基于 Unicode 进行验证的正则表达式 请帮我 下面是一个正则表达
  • Prolog 中的递归 - 寻找城市之间的路径

    我正在努力完成底部的练习我发现自己对第三点完全困惑 我们获得以下旅游信息知识库 byCar auckland hamilton byCar hamilton raglan byCar valmont saarbruecken byCar v
  • 使用 Zombie.js 验证 Qunit 的结果

    我正在进行测试驱动开发Qunit http qunitjs com 当创建一个新函数时 我为它编写测试 创建函数 重新加载页面 如果所有测试都通过 我就继续 虽然一开始工作正常 但之后它开始成为一个耗时的过程一段时间 因为所有测试都需要几秒
  • 如何在另一个线程上运行阻塞代码并使http请求立即返回

    我们开始了一个新项目Quarkus and Mutiny 并使用 Quarkus 创建了一堆端点 Funq 到目前为止一切都运行良好 现在我们想要在一个端点中处理一些非常耗时的事情 我们期望的是 一旦用户单击按钮从前端发送 http 请求并
  • Javascript 中的递归函数和深度跟踪

    我正在用 JS 编写一个递归函数 但遇到了一些麻烦 让我们从这个非常基本的函数开始 function traverse thing if typeof traverse depth undefined traverse depth 1 el
  • Python 中的“For”循环行为

    为什么下面的简单循环没有保存i在循环的末尾 for i in range 1 10 print i i i 3 以上打印 1 2 3 4 5 6 7 8 9 但它应该打印 1 4 7 for sets i每次迭代 到被迭代对象的下一个值 无
  • 运行 `yo angular` 时出现很多“npm ERR!”

    我正在努力让 Yeoman 工作 但是却是一堵又一堵墙 感谢上帝的 stackoverflow 和所有好心人的帮助 无论如何 我一直在努力奔跑yo angular 但我得到了一堆npm ERR 包括 npm ERR Please try r
  • Plotly:如何在 x 轴上绘制月份和日期? (忽略年份)

    我正在尝试绘制时间序列数据 并希望 x 轴只是月份和日期 Plotly 要求格式为yyyy mm dd 但我有几年来数据集的每日平均值 所以我只想绘制mm dd在 x 轴上 当我发送一个日期时间时mm dd它假设mm成为那一年 我可以让它绕
  • 自定义适配器 getView 方法在位置 0 处频繁调用

    我有一个 GridView 绑定到自定义 ArrayAdapter 派生
  • Rails jquery 日期选择器时区

    我在尝试使用 Rails 处理 JQuery 日期 时间选择器中的时区时遇到问题 日期选择器正确显示当地时区 问题出现了 当我将所选日期保存到数据库中时 rails 会将其保存为 UTC 时间 即使该时间位于客户端的时区中 当我尝试将时间转