Skip to content

Instantly share code, notes, and snippets.

View webinista's full-sized avatar

Tiffany Brown webinista

View GitHub Profile
@webinista
webinista / youtubeduration.php
Created December 7, 2018 04:33
Make YouTube API duration readable using PHP
/*
PHP function for converting an ISO8601 duration (the kind used by YouTube's API)
to something more readable.
*/
make_readable_duration($duration)
{
$duration = new DateInterval($duration);
return $duration->format('%H:%I:%S');
}
@webinista
webinista / iso8601ToSeconds.php
Created December 13, 2018 03:46
PHP: Convert an ISO 8601 duration / date (Such as the one YouTube uses) interval to seconds
<?php
function iso8601ToSeconds($input) {
$duration = new DateInterval($input);
$hours_to_seconds = $duration->h * 60 * 60;
$minutes_to_seconds = $duration->i * 60;
$seconds = $duration->s;
return $hours_to_seconds + $minutes_to_seconds + $seconds;
}
@webinista
webinista / flatten2d.php
Created April 12, 2019 20:15
Flatten a two-dimensional PHP array
<?php
function flatten2d($multi_dimensional_array) {
$flattened = [];
$flatten = function($value, $index) {
global $flattened;
array_push($flattened, $value);
};
array_walk_recursive($multi_dimensional_array, $flatten);
return $flattened;
@webinista
webinista / isNumeric.js
Created May 29, 2019 23:22
isNumeric function for JavaScript
// Simple way to check whether a particular value is numeric. Saving it here so that I don't have to solve it twice.
const isNumeric = (value) => {
return !Number.isNaN(parseFloat(value,10));
}
@webinista
webinista / mode.php
Created June 22, 2019 02:54
find the mode of an array using PHP
function array_mode($$arr) {
/*
Count the frequency of occurrence of values in the array.
This will make each duration value into a key, with its frequency as the
value
*/
$counts = array_count_values($$arr);
/*
Get all of the count values and find the unique values, then sort them,
Tested on macOS 11.3.1 with ffmpeg installed with homebrew
Use the h264_videotoolbox codec. -b:v is the bitrate flag. Using a higher
bitrate improves quality, but increases file size.
760k (include the k!) gives a nice balance between quality and file size.
ffmpeg -i input.gif -vcodec h264_videotoolbox -b:v 760k output.h264.mp4
const formatDate = ( dateStr ) => {
let returned = '';
if( 'Intl' in window ) {
const dateObj = new Date( dateStr );
const options = {
month: 'long',
timeZone: 'America/Los_Angeles',
day: 'numeric',
year: 'numeric'
};
@webinista
webinista / build-as3cf-aws3.sh
Created August 27, 2025 17:41 — forked from ianmjones/build-as3cf-aws3.sh
A script for downloading the AWS PHP SDK v3, stripping down to S3 functionality and then applying a custom namespace.
#!/usr/bin/env bash
set -e
if [ ! -d src/amazon-s3-and-cloudfront ]; then
echo 'This script must be run from the repository root.'
exit 1
fi
for PROG in composer find sed unzip