JSFiddle - React, Tailwind, and code Playground

by Aleksey Karagodnikov

HTML

<body ng-app>
    <div ng-controller="MainCtrl">
    Введите текст даты: 
        <br/>
        <input ng-model="data.myinput"/><br/>
        <span>Распознано как:</span> <b>{{dt = jsParseDate(data.myinput); dt.title}}</b><br/>
        <span>Дата:</span> <b>{{dt.date.toLocaleString()}}</b><br/>
        <hr>
            Кликните для проверки примеров:
            <ol>
                <li ng-repeat="example in data.examples" ng-click="data.myinput=example.title">{{example.title}}</a></li>
                   
            </ol>
    </div
</body>

CSS

input {
    width: 90%;
    font-size: 20px;
    padding: 5px 5px;
}
span {
    display: inline-block;
    width: 120px;
    text-align: right;
    color: #888;
}
span {
    margin: 5px;
}

li {
    cursor: pointer;
    padding: 2px;
}

JavaScript

function MainCtrl($scope) {
    $scope.data = {};
    $scope.data.answer = "56";
    $scope.data.myinput = "Напомнить про ДР жены через 10 дней в 11:30";
    $scope.data.examples = [
        {title: "Мыть машину через 2 дня в 11"},
        {title: "Поздравить с ДР через год в 12:30"},
        {title: "Записаться на пятницу"},
        {title: "Проснуться 2 января"},
        {title: "Через 50 лет купить котедж"},
        {title: "Сегодня в 16 позвонить жене"},
        {title: "Через пять дней в 14:00"},
        {title: "Поздравить всех с НГ 31 декабря в 23"},
        {title: "Получить письмо в 18"},
        {title: "Послезавтра в 11 приехать за зарплатой"},
        {title: "Сегодня в 21часов 30 минут выключить Дом2 "},
        {title: "Купить браслет Jawbone Up через 2 дня в 20:00"},
        {title: "Напомнить сделать рефакторинг в субботу"},
        {title: "Перезагрузить сервер в воскресение в 2"}
    ]

//парсер даты (позвонить послезавтра)
$scope.jsParseDate = function(title) {
        title = title.replace("одинадцать", "11").replace("двенадцать", "12").replace("тринадцать", "13").replace("четырнадцать", "14").replace("пятнадцать", "15").replace(" шестнадцать", " 16").replace(" семнадцать", " 17").replace(" двадцать", " 20").replace(" один", " 1").replace(" один", " 1").replace(" два", " 2").replace(" три", " 3").replace(" четыре", " 4").replace(" пять", " 5").replace(" шесть", " 6").replace(" семь", " 7").replace("восемь", "8").replace("девять", "9").replace("десять", "10").replace(" ноль", " 0");
        if (title) title = title.toLowerCase();
        var answer = "";
        var did = false;
        var mytime = "";
        var mydate = new Date();
        var newdate = new Date();
        var d = new Object;
        d.myhours = 0;
        d.myminutes = 0;
        d.mydays = 0;
        d.mymonth = 0;
        d.myyears = 0;
        d.myweek = 0;
        var shablon = /(\d{1,2}.\d{1,2}.\d{4})/g;
        var matches = title.match(shablon);
        if (matches)...