问题标签 [strtotime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使 strtotime() 仅在将来生成时间
我正在尝试制作一个 PHP 脚本来查找下一次出现的日期(比如 5-1)。但是,如果我把它strtotime()
放在 5-2 上,它会得出今年的日期。我只是想让它总是返回下一个日期。我怎样才能使这项工作?如果有帮助,我正在使用 codeigniter。
编辑:这是我想出的一些代码,如果一些卑微的灵魂遇到同样的问题:
php - 获取下一年周一和周二的所有日期
我需要从当前日期开始输出未来 12 个月的日期列表(仅限周一和周二),如下所示:
2010 年1 月 2010 年 1 月
12 日 2010 年 1 月
18 日星期一 2010 年 1 月
19 日 星期二 2010 年 1 月
25 日 2010 年
2 月 2 日
星期二 2010 年 2 月 2 日
星期一 2010 年 2 月 8 日
星期二 2010 年 2 月 9 日
星期一 2010 年 2 月 15 日
星期二 2010 年 2 月 16 日
星期一 2010 年 2 月 22 日 星期一 2010 年3 月 2010 年
3 月
星期二2010 年 3 月
15 日星期一 2010 年 3 月
16 日星期二
...
作为 PHP 新手,我认为strtotime并在接下来的 52 周内循环是最好的方法。
但是我的代码的输出是
2010年 1 月 2010 年 1 月
18 日 2010 年 1 月
12 日 2010 年 1 月
25 日 2010年 2 月
19 日 2010 年
2 月8 日 2010 年 2 月
8 日 2010 年2
月 2 日 2010 年 2 月
15 日 2010 年2 月 15 日 2010 年
2 月22 日 2010 年 3 月
22 日 2010 年 2 月
16 日 2010 年
3 月
08 日
2010 年 3 月 2日星期二 2010 年 3 月
15 日星期一 2010 年 3 月9 日
星期二 2010年 3 月
22 日星期一 2010 年 3 月
16 日星期二 2010 年 3 月
29 日星期一 2010 年 3 月
23 日星期二
如您所见,日期的顺序不正确,我不知所措。
有没有更优雅/简单的方法来解决这个问题?
使用的 PHP 版本是 5.2.11,短期内没有前景 5.3 :-(
谢谢你的帮助。
按照 Aly 的建议修改以下代码。将计算机日期从 2010 年 12 月 1 日星期二更改为 2010 年 1 月 1 日星期三,以测试输出。
以错误的顺序再次输出。
2010 年 1月
周二 2010 年 1 月 19 日
周一 2010 年 1 月 18 日
周二 2010 年 1 月 26 日
周一 2010 年 1 月 25 日 2010 年
2 月 9 日
周二 2010 年 2 月 9 日
周一 2010 年 2 月 8 日
周二 2010 年 2 月 16 日
周一 2010 年 2 月 15 日
周二 2010 年 2 月 23 日 周二 2010 年 2 月
22 日周一
php - PHP 日期问题 - strtotime 不输出它应该输出的内容?
我的数据库中有几个空白的 DATETIME 值(0000-00-00 00:00:00)。
每当我通过 strtotime 运行它们时,它们会返回“1263247058”而不是 FALSE,它应该根据链接页面上的信息执行此操作:
怎么来的?
谢谢。
php - 使用 DOMDocument 元素中的 strtotime 转换日期
在使用 curl 获取 HTML 文件后,我正在使用 DOMDocument 解析一些数据。代码看起来像这样
我无法$var
使用 strtotime 转换为时间戳。我不知道为什么,我知道$cols->item(1)->nodeValue
返回了我想要的值,我什至尝试将其分解并内爆到另一个变量中,但我仍然无法使用 strtotime 将其转换为时间戳。我也直接测试了值
strtotime('11 Jan 2010');
它确实返回了一个时间戳,那么,我该怎么办?
php - 如何使用带有时间戳的mysql“LIKE”语法?
我想让我的用户在数据库中搜索某一天提交的行。使用该date()
功能将日期输入数据库中的字段非常好,但是当我使用 phpstrtotime
功能时,日期当然不完全相同。
是否有一些聪明的 mysql 功能可以帮助我解决这个问题?
php - PHP strtotime() 看起来像是期待欧元格式
我一直在使用 PHP 的 strtotime() 方法来接受表单上的日期字段。我喜欢它的强大功能,它如何接受“明天”、“下周四”或(据说)任何日期表示并将其转换为 Unix 时间戳。
它一直工作得很好——直到昨天。有人输入“2-4-10”,而不是记录 2010 年 2 月 4 日,而是记录 2002 年 4 月 10 日!所以它期望 YMD 而不是 MDY。
我认为问题可能只是使用 2 位数的年份,所以我们再次尝试使用“2-4-2010”。记录在 2010 年 4 月 2 日!那时我只是不明白 strtotime() 在做什么。PHP.net 说它需要美国英语日期格式。那为什么它会假设DMY?
有没有解决的办法?还是我必须停止使用 strtotime()?
注意:我刚刚做了一个测试。当您使用斜杠而不是连字符/破折号时,它可以正常工作,即使是 2/4/10。为什么这很重要?如果仅此而已,我是否应该在将表单输入传递给 strtotime() 之前在表单输入上运行 str_replace("-", "/", $input)?
php - php - mktime 还是 strtotime?
我正在尝试将 2010-02 转换为 2010 年 2 月。但是,我不断得到 1969 年 12 月
我尝试过使用 mktime、strtotime 以及两者的某种组合,但仍然无法做到......
这是我最近尝试的...
php - php why does it keep adding 2 minutes?
When it's pulled from the db, it comes out like this: 2010-02-28 10:00:00
I'm formatting it (yes, I know that it's better to just do it in the query, but I don't have that option right now):
But, no matter what, it outputs like this: Sunday February 28, 2010 10:02 AM
Any idea why it's adding those two minutes?
php - php strtotime 问题,给出不正确的值?
我有这个代码:
顺便说一句,我已经设置
结果是:2010 年 4 月 5 日,缺席 3 天。为什么会这样?我听说它们是strtotime中的一些错误?如果是这样,如何获得正确的?我的意思是,有没有另一种方法来代替它:
php - 如何使 strtotime 以澳大利亚(即英国)格式解析日期:dd/mm/yyyy?
我不敢相信我以前从未遇到过这个。
基本上,我正在解析人工创建的文本文档中的文本,而我需要解析的字段之一是日期和时间。因为我在澳大利亚,日期的格式类似于dd/mm/yyyy
但strtotime
只想将其解析为美国格式的日期。此外,exploding by/
是行不通的,因为正如我所提到的,这些文档是手工输入的,其中一些采用d M yy
.
我尝试了多种组合,setlocale
但无论我尝试什么,语言总是设置为美国英语。
我相当确定 setlocale 是这里的关键,但我似乎无法找到正确的代码。试过这些:
- 澳大利亚
- 奥恩
- en_AU
- 澳大利亚
- 澳大利亚
还有什么我可以尝试的吗?
为清楚起见:我在带有 Windows 框的 IIS 上运行。
非常感谢 :)
伊恩
例子:
生产
我希望它产生:
我的解决方案
我在这里给一个答案打勾,因为它是我的一个更容易阅读的解决方案,但这是我想出的:
因为我不能依赖用户与他们的日期输入保持一致,所以我让我的正则表达式更复杂一点:
- 0 到 3 之间的 0 或 1 个数字
- 0 到 9 之间的 1 位数字——是的,这将匹配 37 作为有效日期,但我认为正则表达式已经足够大了!
- 可能是一些空格
- 分隔符('.'、'/' 或 '')
- 可能是一些空格
- 任何一个:
- 10 到 12 之间的数字或
- 1 到 9 之间的数字,前导 0 可选
- 可能是一些空格
- 分隔符('.'、'/' 或 '')
- 可能是一些空格
- 任何一个:
- 一个 2 位数长的数字或
- 一个 4 位数长的数字
希望这将匹配大多数日期写作风格......