PHP code example of ambroisemaupate / date-to-sentence
1. Go to this page and download the library: Download ambroisemaupate/date-to-sentence library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ambroisemaupate / date-to-sentence example snippets
use AM\Date2Sentence\EnglishDateLexer;
$lexer = new EnglishDateLexer();
$lexer->setDates([
new DateTime('2017-06-01'),
new DateTime('2017-06-02'),
new DateTime('2017-06-03'),
]);
echo $lexer->toSentence();
// "From June 1st to June 3rd"
$lexer->setDates([
new DateTime('2017-06-01'),
new DateTime('2017-06-02'),
new DateTime('2017-06-03'),
new DateTime('2017-06-10'),
]);
echo $lexer->toSentence();
// "From June 1st to June 3rd and June 10th"
use AM\Date2Sentence\EnglishDateLexer;
$nonContinuousLexer = new EnglishDateLexer([
new DateTime('2017-06-01'),
new DateTime('2017-06-02'),
new DateTime('2017-06-03'),
new DateTime('2017-06-10'),
], ['wrap_format' => '<span>%s</span>']);
echo $nonContinuousLexer->toSentence();
// "From <span>June 1st</span> to <span>June 3rd</span> and <span>June 10th</span>"
use AM\Date2Sentence\FrenchDateLexer;
$lexer = new FrenchDateLexer([
new DateTime('2017-06-01'),
new DateTime('2017-06-02'),
new DateTime('2017-06-03'),
]);
echo $lexer->toSentence();
// "Du 1er au 3 juin"
$nonContinuousLexer = new FrenchDateLexer([
new DateTime('2017-06-01'),
new DateTime('2017-06-02'),
new DateTime('2017-06-03'),
new DateTime('2017-06-10'),
]);
echo $nonContinuousLexer->toSentence();
// "Du 1er au 3 juin et le 10 juin"
use AM\Date2Sentence\EnglishDateLexer;
$nonContinuousLexer = new EnglishDateLexer();
// Tolerate 1 missing day between dates.
$nonContinuousLexer->setTolerance(1);
$nonContinuousLexer->setDates([
new DateTime('2017-06-01'),
// no 2nd
new DateTime('2017-06-03'),
// no 4th
new DateTime('2017-06-05'),
// no 6th
new DateTime('2017-06-07'),
]);
echo $nonContinuousLexer->toSentence();
// "From June 1st to June 7th"
use AM\Date2Sentence\EnglishDateLexer;
$nonContinuousLexer = new EnglishDateLexer();
$nonContinuousLexer->setDates([
new DateTime('2017-06-01'),
// no 2nd
new DateTime('2017-06-03'),
// no 4th
new DateTime('2017-06-05'),
// no 6th
new DateTime('2017-06-07'),
new DateTime('2017-07-01'),
]);
echo $nonContinuousLexer->toSentence();
// "June 1st, 3rd, 5th, 7th and July 1st"
//
// In French, it works too…
// "Les 1er, 2, 5, 7 juin et le 1er juillet"
use AM\Date2Sentence\EnglishDateLexer;
$lexer = new EnglishDateLexer();
$lexer->setDates([
new DateTime('2017-06-01 20:00:00'),
new DateTime('2017-06-03 21:00:00'),
new DateTime('2017-06-05 20:00:00'),
new DateTime('2017-06-07 21:00:00'),
new DateTime('2017-07-01 20:00:00'),
]);
echo json_encode(array_keys($this->getLexer()->getAvailableTimes()));
// [
// "20:00",
// "21:00"
// ]
use AM\Date2Sentence\EnglishDateLexer;
$lexer = new EnglishDateLexer();
$lexer->setDates([
new DateTime('2017-06-01 20:00:00'),
new DateTime('2017-06-02 21:00:00'),
new DateTime('2017-06-03 21:00:00'),
new DateTime('2017-07-01 20:00:00'),
new DateTime('2017-07-02 21:00:00'),
new DateTime('2017-07-03 21:00:00'),
]);
echo json_encode($this->getLexer()->toArray());
// [
// [
// {"date":"2017-06-01 20:00:00.000000","timezone_type":3,"timezone":"Europe\/Paris"},
// {"date":"2017-06-03 21:00:00.000000","timezone_type":3,"timezone":"Europe\/Paris"}
// ],
// [
// {"date":"2017-07-01 20:00:00.000000","timezone_type":3,"timezone":"Europe\/Paris"},
// {"date":"2017-07-03 21:00:00.000000","timezone_type":3,"timezone":"Europe\/Paris"}
// ]
// ]
use AM\Date2Sentence\EnglishDateLexer;
$lexer = new EnglishDateLexer();
$lexer->setDates([
new DateTime('2017-06-01'),
new DateTime('2017-06-02'),
new DateTime('2017-06-03'),
new DateTime('2017-06-08'),
new DateTime('2017-06-08'),
]);
echo json_encode($this->getLexer()->getAvailableDaysOfWeek());
// [
// 4,
// 5,
// 6
// ]
bash
vendor/phpunit/phpunit/phpunit --bootstrap vendor/autoload.php test
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.