- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试通过 2 个先前翻译为西类牙语的日期选择器保存用户将填写的日期范围。
问题是,当我在日期上使用 strtotime()
时,它会将月份作为日期,反之亦然。
示例:我选择 2017 年 5 月 27 日,但返回值的日期格式不正确,因为月份是 27。如果我选择 2017 年 5 月 01 日,则它在数组中显示为 2017 年 1 月 05 日。
以下是我用来从输入文本中获取日期并生成日期之间的范围的函数
function takedates() {
if(isset($_POST['repS'])){
$dateStart = $_POST['txtdesde'];
$dateEnd = $_POST['txthasta'];
$fechaArray = generafechas($dateStart,$dateEnd);
}
function generafechas($date1,$date2){
$fecharray = array();
if (is_string($date1) === true){
$deit1 = strftime("%d-%m-%Y",strtotime($date1));
}
if (is_string($date2) === true){
$date2 = strftime("%d-%m-%Y",strtotime($date2));
}
do {
$fecharray[] = date("m-d-Y", $date1);
$date1 = strtotime("+1 day", $date1);
} while($date1 <= $date2);
return $fecharray;
}
?>
我的问题是:如何用西类牙日期格式的日期填充数组?
PS:我已经在使用这些函数的文件中使用了 setLocale(LC_TIME,'es_ES')
,并且输入显示的日期类似于“dd/mm/yyyy”
最佳答案
strtotime
解析日期时间字符串时不会考虑您的区域设置。如果您使用由斜杠分隔的日期,则假定为美式 m/d/y
。如果您使用由句点分隔的日期(如果年份是四位数,则使用破折号),则假定为世界其他地区风格(d.m.y
或 d-m-Y
)。 (请注意,如果您仅使用两位数年份并使用破折号,PHP 将尝试将其解析为 y-m-d
。)
您应该使用 date-create-from-format
/ DateTime::createFromFormat
而不是 strtotime
获取 DateTime
对象,然后从中构建日期字符串。
根据评论进行更新:为了获得您想要的输出,您需要使用 intl
扩展的 IntlDateFormatter
class进行输出。
要修改上面的代码(未经测试):
function generafechas($date1,$date2){
$fecharray = array();
if (is_string($date1) && is_string($date2)){
// These lines assume the input is formatted `day-month-year`,
// with 2-digit day and month, and 4-digit year.
$date1 = DateTime::createFromFormat('d-m-Y', $date1)
$date2 = DateTime::createFromFormat('d-m-Y', $date2)
} else {
throw new InvalidArgumentException('Must provide two date strings');
}
// Create the formatter
$formatter = IntlDateFormatter::create('es_ES', null, null, null, null, "d 'de' MMMM 'del' yyyy");
do {
// This line prints the first date in the format you chose above
$fecharray[] = $formatter->format($date1);
$date1->add(new DateInterval("P1D")); // `P1D` means "Duration of 1 Day" in the ISO 8601 standard
} while($date1 <= $date2);
return $fecharray;
}
如果您随数据一起提供区域设置,则可以根据需要更改 createFromFormat
中使用的格式字符串。
关于java - 使用 jQueryUI datepicker 和 php 获取一系列日期(西类牙语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42488741/
这个问题已经有答案了: What is the Java ?: operator called and what does it do? (17 个回答) 已关闭 8 年前。 ltVal = node
我是一名 Java 学生,我在嵌套该程序的条件语句时遇到问题 Exercise CozaLozaWoza (Loop & Condition): Write a program called Coza
首先,我想给出用户想要留下的句子的数量,当他的写作结束时,我的代码开始将每个单词的第一个字母大写(在 Java 中)。 import java.util.Scanner; public class I
我尝试在基类中实现一个函数,该函数使用子函数(defiend 作为基类中的抽象函数)。我认为一个例子可以最好地说明这个问题。 abstract class Animal{ public void
就像在口吃中一样,如果文本为“dean”并且乘数为 3,则结果将是“dddeeeaaannn”。 public static void repeatLetters() { String text
public void insert(int data) { if (root == null) root = new AVLNode(data); else {
我是 XPATH 的新手,并且遇到以下问题: 我有以下代码片段,但似乎无法按我的预期工作: String XML = cdataContent;
例如,Java 数据类型字节将数据从 -128 到 127 存储在单个字节中。为了能够区分 - 1 到 -128 从 0 到 127 将需要额外的数据,这些数据将采用数据类型覆盖其分配的存储空间。不可
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
Dataset: P1: Lion, Snow, Chair P2: Min: 0, Max: 28 P3: Min: 34, Max is 39. 我的程序 以一系列数组列表的形式提供上述数据集(P
我正在构建一个应该 24/7 全天候运行的客户端服务器应用程序。应用程序指定检测网络故障(使用心跳)并尽快重新连接到服务器。 我做的第一个测试只是停止客户端或服务器,然后重新启动,一切正常。我想知道是
我怀疑它是编写它的类的类型,但我不是 100% 确定,有人可以证实我的怀疑并可能提供对定义此行为的 Java 语言规范的引用吗? 假设类 A 有一个方法 a(),它在其主体中使用了 this 关键字,
我已经在谷歌上搜索了两个小时,但没有成功。 如果我有一个模板函数并且我想在模板类型上强制执行一个接口(interface),我该怎么做? 例如。 void doStuff(T)(bool param)
我正在尝试获取用户输入并对其进行修改,以便打印不带任何元音的字符串。我已经能够使用以下代码成功完成此操作。 Scanner in = new Scanner(System.in); Syste
每当我使用 Thread.sleep(); 时在 do while 循环中,提示告诉我,“在循环中调用 Thread.sleep 可能会导致性能问题。”我从许多其他网站和书籍上听到过这一点。我可以用什
请不要将其视为以下内容的重复项而将其忽略: How to generate random positive and negative numbers in java 我需要使用带有种子的随机数生成器。
我想在一个数字范围内选择随机数,但权重偏向该范围的一部分。例如: 选择1-10之间的随机数 对其进行加权,使 1-5 比 6-10 的可能性高 20% 这可能吗?我该怎么做? 最佳答案 这取决于您希望
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我有一个付款 Activity 和启动 Activity ,它在用户购买后显示内容应用程序。付款 Activity 是Manifest.xml中的默认启动器,我想将启动器 Activity 设置为启动
我有一个指针和长度。如何从他们那里得到一个动态数组? 最佳答案 设ptr是一个指针,len是一个长度,那么很容易如下: ptr[0..len] 请注意,这不会复制数组,而是就地使用数据。 如果要复制数
我是一名优秀的程序员,十分优秀!