将字符串日期数组转换为时间戳

时间:2015-05-29 23:27:40

标签: php mysql arrays date datetime

我有一个带有名为“date []”的输入框的表单和一个允许您创建更多行以添加更多日期的按钮,所有这些都使用名称“date []”。我的文本输入框中的日期选择器格式是m-d-Y(03-15-2015)。当我提交表单时,我需要将日期数组转换为mysql日期格式Y-m-d(2015-03-15)。我成功地在我的PHP脚本中捕获了一个数组中的日期数组,我正在尝试做一个foreach循环,并使用'strtotime'将每个date []值转换为时间戳,然后我将转换为正确的Y-m-d格式。问题是strtotime期望字符串不是数组。

我的问题是如何迭代每个date []值并将其转换为时间戳?没有固定数量的日期,它可以随每个用户而变化。

提前谢谢你。

2 个答案:

答案 0 :(得分:0)

使用foreach:

fd_set readset;
struct timeval tv;
FD_ZERO(&readset);
FD_SET(from_ap, &readset);
tv.tv_sec = 0;
tv.tv_usec = 100;

result = select(from_ap+1, &readset, NULL, NULL, &tv);

if (result > 0 && FD_ISSET(from_ap, &readset)){
    printf("there was something to read\n");
    rsize=read(from_ap,cport_rbuf,ES1_MSG_SIZE);
}

现在所有转换的日期都存在于$ cDates数组中。

答案 1 :(得分:0)

您可以使用array_map()array_walk()

执行此操作

这是一个array_walk示例,让您在通话时指定格式。

$dates = ['03-15-2015', '05-29-2015'];
array_walk($dates, function(&$date, $i, $formats)
{
    $datetime = DateTime::createFromFormat($formats['from'], $date);
    $date = $datetime->format($formats['to']);
}, ['from' => 'm-d-Y', 'to' => 'Y-m-d']);