If you're experiencing a Git "pre-receive hook declined" error, there are a few options how to fix it. 

The most common reason is that in your repository (for example GitLab) the master branch is now “protected” and the main branch have a name “main”.

Possible solutions:

  • In the project settings (Settings > Repository), go to the section of protected branches "Protected branches", find the branch "master" and click on "Unprotect".
  • As an alternative solution, you can set your user permission to make changes in this branch.

To query data from a table for the current day, you can use the following query code:

SELECT *
FROM table_name
WHERE DATE(date_field_name) = CURDATE()

where table_name =  the name of the table where you want to get data from.

date_field_name - name of the field where dates are stored (in date or datetime format)

 

An alternative is to write today's date into the query using PHP (sometimes it makes sense if you use indexing on a date column):

$mysqlQuery = "SELECT *
FROM table_name
WHERE date_field_name > '" . date('Y-m-d') . " 00:00:00' ";

To translate Daterangepicker into your language you need to add translations during script initialization.

Initial values:

$("#your_input_id").daterangepicker(
{
locale: {
"daysOfWeek": [
"Su",
"Mo",
"Tu",
"We",
"Th",
"Fr",
"Sa"
],
"monthNames": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"applyLabel": "Apply",
"cancelLabel": "Cancel",
"fromLabel": "From",
"toLabel": "To",
"customRangeLabel": "Custom",
}
});

Replace those values with your language. 

Let's  consider the case that you have a date “08/25/2022” and you want to use in a new Date() object. The problem is that this date format cannot be passed to new Date(), because there will either be an error or the final date value won't be correct.

First you need to convert the date to the other format.

An example:

var splittedDate = "25.08.2022".split(".");  
var formattedDate = splittedDate[1] + "/" + splittedDate[0] + "/" + splittedDate[2];
var finDate = new Date(formattedDate);
console.log(finDate);

This is an example of a function that extracts files from an archive, renaming them if there are files with the same name in the destination folder:

function extractZip($zipFilePath, $folderToExtract) 
{
$zipArchive = new ZipArchive();
$result = $zipArchive->open($zipFilePath);
if ($result === TRUE) {
for ($i = 0; $i < $zipArchive->numFiles; $i++) {
$filename = $zipArchive->getNameIndex($i);
$filePath = $folderToExtract. '/' . $filename;
if (file_exists($filePath)) {
$fileInfo = pathinfo($filename);
$newFileName = $fileInfo['filename'] . '_(copy).' . $fileInfo['extension'];
copy("zip://" . $zipFilePath . "#" . $filename, $folderToExtract . '/' . $newFileName);
} else {
copy("zip://" . $zipFilePath. "#" . $filename, $filePath);
}
}
$zipArchive->close();
}
}

Function parameters:

$zipFilePath - path to zip file

$folderToExtract - path to the folder where the archive should be unpacked.

 

It should be noted that the function has not been tested on nested archives and nested folders.

A function that allows you to extract files from a zip archive to a specified folder:


function extractZip($filePath, $extractTo){
$zip = new ZipArchive();
$result = $zip->open($filePath);
if ($result === TRUE) {
$zip->extractTo($extractTo);
$zip->close();
}
return $result;
}

$file = 'myfile.zip'; // change to your file path
$folder = 'myfolder'; // change to your folder path

extractZip($file, $folder);

Note: you need a zlib library for this code to work

 

If you want to delete a directory using PHP,  first you need to delete all existing files inside it.

For these purposes, you can use this function:

public function removeDirectory($dir): bool
{
$files = array_diff(scandir($dir), array('.', '..'));
foreach ($files as $file) {
(is_dir("$dir/$file")) ? $this->removeDirectory("$dir/$file") : unlink("$dir/$file");
}
return rmdir($dir);
}

Let's consider an example of how you can get an image dimensions, knowing its URL.

We create an Image object, then assign a link to it and then after image load we can find out the width and height of the object.

An example:

const img = new Image();
img.src = 'http://mysite.com/myimage.gif'; // change to your URL
img.onload = function() {
console.log(this.width);
console.log(this.height);
}

This example should print to the console the width and height of the image you have specified in the URL.

If you need the restriction that user cannot select a date in the Datepicker from the future, then there are 2 easy ways to do this.

You must add the maxDate parameter with a value of 0 or the current date “new Date()” at Datepicker initialization. 

An example: 

 $(function() {
$( "#mydate" ).datepicker({ maxDate: new Date() });
});

Alternative: 

$(function() {
$( "#mydate" ).datepicker({ maxDate: 0 });
});

If you have encountered an error  "A problem occurred evaluating project ':app'. > Could not find method kapt() for arguments"  when you have tried to include room in Android Studio, then this quick solution should help you to fix it up.

In the build.gradle file find plugins section and add id 'kotlin-kapt'” to it: 

plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
}

If you want to compare two dates in PHP using DateTime, you can use math operators (>, <, ==)

An example:

$date1 = new DateTime('2022-09-26 16:12:20');
$date2 = new DateTime('2022-01-11 10:13:30');
var_dump($date1 == $date2); //false
var_dump($date1 > $date2); // true
var_dump($date1 < $date2); // false


This  problem appears when you try to write a string instead of an Editable into an EditText element .

Wrong usage example: 

 binding.myEdit.text = "12345"

The solution is to write text using the setText method:

 binding.myEdit.setText("12345")

If you do not use View Binding, then see this example:

val txt = findViewById (R.id.my_text) as EditText
txt.text = "12345" // an error
txt.setText("12345") //correct