- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小片段,可以像这样为时间戳格式化日期:(YYYY-MM-DD H:M:S T ) Ex: 2011-09-29 17:00:46 EST or 2011-09 -29 17:00:46 美国东部时间
我想将 EST 和 EDT 转换为 ET 并改为显示 ET,这样用户就不必担心日光节省。我该怎么做?
$timeZone = new DateTimeZone('America/New_York');
$processedDate = str_replace(".000000", "", $timestamp);
$dateTime = new DateTime($processedDate, new DateTimeZone('GMT'));
$dateTime->setTimezone($timeZone);
$processedDate = $dateTime->format('Y-m-d H:i:s') . ' ' . $dateTime->format('T');
echo processedDate;
最佳答案
你想做的事情不切实际,会导致你的用户讨厌你。
命名时区背后的全部原因是为了准确表示本地时间。当该本地区域在 DST 内时,将“标准”时间表示为本地时间在客观上是不正确的。任何在该时区内读取时间的人都会被误导。
如果您需要存储和使用忽略时区的日期和时间,则为此目的使用 UTC,即存储和正常数学。值得记住的是,即使是古老的 Unix 时间戳也是“1970 年 1 月 1 日午夜过后的秒数,UTC”。
如果您需要向用户展示本地时间,那么您应该允许他们选择他们本地的时区,并在显示时进行转换。现代 PHP 的 DateTime 和 DateTimeZone 使这变得非常简单。从交互式提示:
php > $utc = new DateTimeZone('UTC');
php > $amla = new DateTimeZone('America/Los_Angeles');
php >
php > $two_past_midnight = new DateTime('2011-04-05 00:02', $utc);
php > $two_past_midnight->setTimeZone($amla);
php > echo $two_past_midnight->format('Y-m-d H:i:s');
2011-04-04 17:02:00
没有困惑,没有大惊小怪。当我们切换时区时,它会为我们处理数学问题。
或者,如果您真的、真的、真的想要拉平 DST 时区,请查看 getTransitions 和 getOffset 以及各种时区 date() 格式,尤其是我。您可以戳戳结果信息以查找任何 DST 区域的“标准”版本下一次转换的时间并相应地进行调整。请记住,不同的区域在不同的时间过渡,并非所有区域的过渡量都相同……有些区域根本不过渡。我想有人已经提到印第安纳州了。
通常我也会在这里提供示例代码,但日期数学让我对暴力充满了永不满足的渴望。谁决定 60、60、24、7、4-6、12 和 52 是可以接受的时间和日期思考方式的人都是邪恶的人。值得庆幸的是,它们都已经死去数百年甚至数千年了。
关于php - 以 ET 而不是 EST 或 EDT 显示时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11056778/
我一直在学习如何使用 ets,但困扰我的一件事是,偶尔*,ets:match 会抛出一个错误的参数...而且,从他们开始,所有后续调用(甚至之前有效的调用)也会抛出一个错误参数: > ets:matc
我正在尝试使用指数平滑方法创建预测,但得到错误“非季节性数据”。这显然不是真的 - 请参阅下面的代码。 为什么我收到这个错误?我应该使用不同的函数(它应该能够执行简单的、双重的、阻尼趋势的、季节性的、
I'm writing a program using Elixir and I have a very strange error.我正在用长生不老药编写程序,我有一个非常奇怪的错误。 I
I'm writing a program using Elixir and I have a very strange error.我正在用长生不老药编写程序,我有一个非常奇怪的错误。 I
我在 erlang 中使用 ets:select 有一个奇怪的行为。 我获得了正确的 select 语句(下面的 4 和 5),然后在我的语句中出错(下面的 6),然后我再次尝试与 4 和 5 中相同
如果我想将 ETS 表用于共享状态,是否有任何已建立的机制来等待插入 ETS 表? 我知道 mnesia 支持表事件,我在想一个类似的机制对普通 ETS 很有用,这样一个进程就可以等待它需要的数据被加
ets 包的delete_object 的运行时间是多少?鉴于有 n 个条目具有相同的键 k,delete_object 的运行时间是否为 O(n)或者O(1)?如果确实是 O(1),lookup 操
我们想知道如何有效地查找两个 ets 表之间的相互元素,我们尝试了 ETS 和 QLC 模块,但不知道如何做到这一点,我们在 [bag] 选项上使用 ets,这意味着同一个键有多个值。 我们正在寻找最
ETS set 是否保证元组的内部顺序与其插入顺序相同?例如:我通过每秒插入一个元组来保留日志,时间戳是关键。在此示例中,set 是否保证元组按键排序? 我知道ordered_set会做我希望的事情,
具体来说,:ets.tab2list 和 :ets.file2tab。这些函数是否“快照”表状态,或者其他操作是否可以在这些函数完成时交错读取和写入? 最佳答案 基于文档 here : Functio
我是 Erlang 新手。我有一个关于 ets 表的问题。 我有两个 ets 表,我需要从两个表中插入或删除值。 insert(V) -> ets:insert(table_test,V),
我使用 elang ets 表作为一个简单的缓存。我想使用一个进程来扫描表并删除过期元素(多个)。 使用 ets:foldl expire_table_example() -> Tab = ets:n
我在使用 ets:match 时遇到问题。在下面的代码中,我希望 ets:match 返回 1 个找到的值,但没有返回任何值。为什么? 1> T = ets:new(xxx, []). 16400 2
我在一个进程中创建了 ETS 表,我想在另一个进程中使用它。我如何在第二个过程中“打开”ETS 表?在手册页中找不到好的功能。 最佳答案 您必须使用“named_table”和“public”选项创建
我通过 elixir 使用 ets 作为一个简单的内存持久层来存储和检索键,以及偶尔的 foldl,这涉及减少许多具有不同值的重复键。我正在使用包选项。 是否有一种简单的,也许是 O(1) 的方法来检
我正在考虑在一个新的 Elixir 项目中使用 Erlang 的 ETS 作为用户搜索的缓存。根据用户输入,系统将使用昂贵的第三方 API 进行查找。 为了避免对相同的用户输入进行重复调用,我打算在外
在调试使用信号量进行跨进程同步的应用程序时,我偶然发现了使用PowerShell代替“其他”进程的想法。在PowerShell中执行以下操作可以正常工作: // In C# application:
我对从 ets 表中选择的性能进行了一些测试,并注意到了奇怪的行为。例如,我们有一个简单的 ets 表(没有任何特定选项),它存储键/值 - 一个随机字符串和一个数字: :ets.new(:table
我有一些这样的代码: Table = ets:new(table, [bag]), true = ets:insert(Table, {bucket_1, some_value_1}), true =
假设我有一个 ets 表,例如: I = ets:new(mytable, [named_table, set]). ets:insert(I, {10,{10, 4 ,"description"})
我是一名优秀的程序员,十分优秀!