Создание X-значного PIN-кода, который меняется каждую неделю без сохранения его в БД или текстовом файле.

Мне нужно создать для клиента способ получать новый ПИН-код каждую неделю, но они используют общий хостинг, и он не позволяет создавать / редактировать файлы, а также я не хочу использовать их MySQL для хранения подобных вещей.

Я думаю, что должен быть способ генерировать полууникальный номер каждую неделю, и тогда работа CRON может отправлять новый номер клиенту каждую неделю.

Есть идеи, как это сделать удобно?

0

Решение

Date.prototype.getWeek = function() {
var onejan = new Date(this.getFullYear(), 0, 1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
}

function GeneratePIN(year, month, day){
var date = new Date();
date.setYear(year);
date.setMonth(month);
date.setDate(day);

var weekNumber = date.getWeek();
month = date.getMonth()+1;
return Math.round(weekNumber * month * Math.PI * 500000)
.toString()
.substr(0,4)
.split("")
.reverse()
.join("");
}angular.module('MyApp', [])
.controller('MyCtrl', function($scope){
items = [];
for(var i = 0; i < 12; i++){
items.push({date : new Date(2014,i,1), pin : GeneratePIN(2014, i+1, 1)});
}
$scope.items = items;
});
<!DOCTYPE html>
<html ng-app="MyApp">

<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>

<body>
<h1>Sample</h1>
<div ng-controller="MyCtrl">
<div ng-repeat="item in items">
{{ item.date | date:'yyyy-MM-dd HH:mm:ss' }} => {{item.pin}}
</div>
</div>
</body>

</html>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]