小编I'l*_*ack的帖子

处理时间和午夜后

你会如何处理PHP/MySQL中的时间和午夜?

使用INT商店分钟或使用TIME类型字段?

考虑下面的SQL查询:

SELECT * FROM opening_hours  
        WHERE week_day = WEEKDAY(NOW()) + 1 
              AND open_hour =< date_format(now(),'%H:%i') 
              AND close_hour >= date_format(now(),'%H:%i')
Run Code Online (Sandbox Code Playgroud)

open_hour/ close_hourfields是TIME类型字段.

假设open_time是"18:00",close_time是"02:00",当前时间是"22:41".我们为close_time有一个单独的DB记录(因为它在午夜之后),但我们永远不会在结果中得到它,因为close_time"02:00"不大于当前时间,"22:41".

此外,如果当前时间是"01:00",我们将获得NEXT日值,因为工作日不匹配.

那么解决方案是什么?

您是否愿意将这些值存储在INT(分钟)中,以便php能够直接处理这些值而无需任何转换?

例如...

当前时间:

// w = Day of the week, H = 24-hour format, i = Minutes
$timearr = explode(':',date("w:H:i"));
$currenttime = ($timearr[0]) * 1440 + $timearr[1] * 60 + $timearr[2] 
Run Code Online (Sandbox Code Playgroud)

在数据库中,存储的打开/关闭时间值以分钟为单位.

现在假设,当前时间是"太阳,01:00"(一周的第一天),执行上述转换此值为60; 并且周(星期六)的最后一天的开/关时间设置为"17:00"和"02:00"(实际上是星期日),存储在DB中为9660和10200(星期六,26:00) .在这种情况下,上面的查询将找不到我们需要的记录(星期六,17:00,02:00),因为我们可能没有任何open_time小于"02:00"(120).为了解决这个问题,我们将"Sun,01:00"转换为"星期六,25:00",将$ 7*1440(整周)添加到$ currenttime,结果为10140.然后DB查询如下:

SELECT open_time,clos_time FROM open_hours 
    WHERE (open_time <= …
Run Code Online (Sandbox Code Playgroud)

php mysql sql

9
推荐指数
1
解决办法
2617
查看次数

SQS Lambda-重试逻辑?

将消息添加到SQS队列中并将其配置为触发lambda函数(nodejs)之后。

触发lambda函数时-我可能想在5分钟后重试相同的消息,而不从队列中删除该消息。如果Lambda无法连接外部主机(例如API),我想这样做的原因-我想在5分钟后仅尝试3次再试一次。

如何用node js编写?

例如在Laravel中,我们可以Specifying Max Job Attempts发挥功能。尝试使用该作业的次数public $tries = 5;

资料来源:https : //laravel.com/docs/5.7/queues#max-job-attempts-and-timeout

我们如何在node.js中进行类似的处理?

我正在考虑将消息添加到另一个队列(以重试)。Lambda函数会在5分钟后从该队列中读取所有消息,然后将该消息发送回主队列,这将触发Lambda函数。

amazon-sqs node.js aws-lambda

9
推荐指数
2
解决办法
4422
查看次数

另一种改进SQL查询以避免联合的方法?

用户可以通过邮政编码(例如:L14,L15,L16)或文本框中的位置进行搜索.

如果用户输入"利物浦",它将找到位于"利物浦"的所有商店.如果用户输入邮政编码(例如:L15),它将搜索在L15邮政编码区域内交货的所有商店.

见下表:

mysql> select * from shops;
+----+----------+-----------+----------+
| id | name     | location  | postcode |
+----+----------+-----------+----------+
|  1 | Shop One | Liverpool | L10      |
|  2 | Shop Two | Liverpool | L16      |
+----+----------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)

-

mysql> select * from shops_delivery_area;
+------------------+---------+----------+---------------+
| delivery_area_id | shop_id | postcode | delivery_cost |
+------------------+---------+----------+---------------+
|                1 |       1 | L10      |          1.50 |
|                2 |       1 | L11      |          0.00 |
|                3 |       1 | …
Run Code Online (Sandbox Code Playgroud)

mysql sql database

8
推荐指数
1
解决办法
6331
查看次数

PHP中的语音识别?

我正在寻找PHP语音识别.

我有很多wav文件(10-15秒),我希望语音识别能够识别每个wav文件中的1或2个单词,然后将其标记为数据库或csv.

所有文件都有相同的声音和口音(同一个人哈哈)

示例伪代码:

$voice = new play('file.wav');
$result = $voice->recognise("Good Morning");
if ($result) { 
  echo "Matched Good Morning"; 
  //flag to database or csv
 } else { 
  echo "No match found";
 }
Run Code Online (Sandbox Code Playgroud)

哪个PHP语音识别库可以做到这一点?

php audio speech-recognition voice-recognition

8
推荐指数
1
解决办法
2万
查看次数

Laravel - 参数号无效:未定义参数

在Laravel上,为什么我会收到错误

参数号无效:未定义参数

我已经包含了所有参数.

当我直接在PHPMyAdmin上测试时,它工作正常.

码:

$results = \DB::select('SELECT client_id,
                               date_format(start_date,"%d/%m/%Y") as start_date,
                               date_format(end_date,"%d/%m/%Y") as end_date,
                               first_name, last_name, phone, postcode
                            FROM hire INNER JOIN client ON client.id = hire.client_id
                            where ((:sdate between start_date and end_date OR :edate between start_date and end_date) OR (:sdate <= start_date and end_date <= :edate)) AND car_id = :car_id', [
        'sdate'  => $start_date,
        'edate'  => $end_date,
        'car_id' => $car_id
    ]
);
Run Code Online (Sandbox Code Playgroud)

变量示例:

$start_date = $inputs['start_date'];  //2015-10-27
$end_date = $inputs['end_date'];     //2015-10-27
$car_id = $inputs['car_id'];         //5
Run Code Online (Sandbox Code Playgroud)

php mysql laravel

8
推荐指数
2
解决办法
7725
查看次数

PDO:如何在Linux上访问Microsoft Access文件?

我已经设法使用PDO在Windows上读取Microsoft Access文件(.accdb)的数据,但是我在使用Linux(CentOS)时遇到了问题.我可以看到安装了模块:

[root@rapid host]# php -m | grep PDO
PDO
PDO_ODBC
[root@rapid host]# php -m | grep odbc
odbc
Run Code Online (Sandbox Code Playgroud)

码:

<?php
    try{
        $dbhAccess = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=/root/access/data.accdb;Uid=Admin");
    }
    catch(PDOException $e){
        echo $e->getMessage();
        exit();
    }
Run Code Online (Sandbox Code Playgroud)

当我执行(CLI)PHP文件时,我得到一个错误:

[root@rapid host]# php access.php
SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
Run Code Online (Sandbox Code Playgroud)

php linux odbc pdo ms-access-2007

7
推荐指数
1
解决办法
2万
查看次数

用于Windows构建的Electron和Cordova

Electron可以使用JavaScript,HTML和CSS开发桌面应用程序(.exe).它基于Node.js和Chromium

似乎我也可以使用Cordova做同样的事情,但是Cordova无法做到这一点(在台式机应用方面)?

我需要构建一个可以全屏运行的应用程序,使用AppCache(清单)并使用IndexedDB存储数据.它需要与条形码扫描器和串行端口通信一起使用(例如:https://github.com/voodootikigod/node-serialport)

cross-platform node.js cordova electron

7
推荐指数
2
解决办法
6721
查看次数

什么是 www.conf?

我知道php.ini可以在/etc/php/7.0/fpm目录中找到什么

我找不到文档是为什么www.conf设计的?它可以在

/etc/php/7.0/fpm/pool.d
Run Code Online (Sandbox Code Playgroud)

php nginx

7
推荐指数
1
解决办法
9451
查看次数

APP_DEBUG=true 被忽略

APP_DEBUG=true我的文件中有.env

APP_ENV=local
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://test.dev
Run Code Online (Sandbox Code Playgroud)

我故意使用了不正确的 URL(例如:),test.dev/asdsadsa但它不在 web.php 路由文件中。

我预计当路由不存在时会出现 laravel 调试错误

Sorry, the page you are looking for could not be found.
NotFoundHttpException in RouteCollection.php line 161:
Run Code Online (Sandbox Code Playgroud)

APP_DEBUG然而,即使设置为 true,它仍然显示 404 错误页面 (views/errors/404.blade.php) 。

我尝试过的:

1 - 我什至测试以确保 laravel 可以读取 .env 文件:

Route::get('/', function() { 
  dd(env('APP_DEBUG')); 
});
Run Code Online (Sandbox Code Playgroud)

返回true

2 -php artisan config:cache没有修复它。

3 -chmod -R 777 storage没有修复它。

php laravel laravel-5 laravel-5.3

7
推荐指数
1
解决办法
2万
查看次数

如何从约会中删除3个月?

假设日期是:

$date = "2011-08-28";
Run Code Online (Sandbox Code Playgroud)

它需要在3个月之前计算$date- 如何做到这一点?

php date date-format

6
推荐指数
2
解决办法
9908
查看次数