你会如何处理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) 将消息添加到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函数。
用户可以通过邮政编码(例如: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) 我正在寻找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语音识别库可以做到这一点?
在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) 我已经设法使用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) Electron可以使用JavaScript,HTML和CSS开发桌面应用程序(.exe).它基于Node.js和Chromium
似乎我也可以使用Cordova做同样的事情,但是Cordova无法做到这一点(在台式机应用方面)?
我需要构建一个可以全屏运行的应用程序,使用AppCache(清单)并使用IndexedDB存储数据.它需要与条形码扫描器和串行端口通信一起使用(例如:https://github.com/voodootikigod/node-serialport)
我知道php.ini可以在/etc/php/7.0/fpm目录中找到什么
我找不到文档是为什么www.conf设计的?它可以在
/etc/php/7.0/fpm/pool.d
Run Code Online (Sandbox Code Playgroud) 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 ×7
mysql ×3
laravel ×2
node.js ×2
sql ×2
amazon-sqs ×1
audio ×1
aws-lambda ×1
cordova ×1
database ×1
date ×1
date-format ×1
electron ×1
laravel-5 ×1
laravel-5.3 ×1
linux ×1
nginx ×1
odbc ×1
pdo ×1