在 Symfony2 中处理本地化的 DateTime
Dealing with localised DateTime in Symfony2
我在一个基于 Symfony2 的网站上工作,客户可以要求用户在一天中的特定时间 post,例如晚上 9 点到晚上 10 点。
用户来自世界各地,如果客户在晚上 9 点请求 post,这不是基于他的当地时间,而是基于将为他 post 的用户。
我是否应该请求我的用户他的时区是什么并存储它,然后使用它来将他的 post 的 php DateTime 转换为他的时区,然后检查他是否 post 在晚上 9 点编辑?你能告诉我一些代码示例吗?
此外,询问用户时区的好方法是什么?
编辑:我想询问用户他的时区,而不是以编程方式获取它,因为它实际上是他的观众时区(看到他的 posts 的人)而不是他的个人时区。
最好的方法是使用带有库 jsTimezoneDetect 的 js 时区检测
下一次发送通过 ajax 请求保存在会话中的时区
接下来在会话中使用时区将时区设置为日期,您可能想为此制作 twig 扩展,以便您可以在 twig 中轻松使用它。
1. 所有日期必须在同一时区,例如 UTC
可以在AppKernel.php
中设置
date_default_timezone_set('UTC');
显示日期使用这样的东西
$date->setTimezone(new \DateTimeZone($timezone));
其中日期是 \DateTime 对象
如果你仍然想询问用户,你可以创建表单:
您创建一个表单,使用 http://symfony.com/doc/current/reference/forms/types/timezone.html
场地
并将该时区发送到控制器(AJAX 或标准),设置时区会话,然后像我上面描述的那样处理它,通过您的自定义树枝扩展等显示日期
我在一个基于 Symfony2 的网站上工作,客户可以要求用户在一天中的特定时间 post,例如晚上 9 点到晚上 10 点。
用户来自世界各地,如果客户在晚上 9 点请求 post,这不是基于他的当地时间,而是基于将为他 post 的用户。
我是否应该请求我的用户他的时区是什么并存储它,然后使用它来将他的 post 的 php DateTime 转换为他的时区,然后检查他是否 post 在晚上 9 点编辑?你能告诉我一些代码示例吗?
此外,询问用户时区的好方法是什么?
编辑:我想询问用户他的时区,而不是以编程方式获取它,因为它实际上是他的观众时区(看到他的 posts 的人)而不是他的个人时区。
最好的方法是使用带有库 jsTimezoneDetect 的 js 时区检测
下一次发送通过 ajax 请求保存在会话中的时区
接下来在会话中使用时区将时区设置为日期,您可能想为此制作 twig 扩展,以便您可以在 twig 中轻松使用它。 1. 所有日期必须在同一时区,例如 UTC
可以在AppKernel.php
中设置date_default_timezone_set('UTC');
显示日期使用这样的东西
$date->setTimezone(new \DateTimeZone($timezone));
其中日期是 \DateTime 对象
如果你仍然想询问用户,你可以创建表单: 您创建一个表单,使用 http://symfony.com/doc/current/reference/forms/types/timezone.html 场地 并将该时区发送到控制器(AJAX 或标准),设置时区会话,然后像我上面描述的那样处理它,通过您的自定义树枝扩展等显示日期