venca-x / nette-date-time
Nette 插件。日期和时间的扩展表单
1.1.1
2018-06-05 14:41 UTC
Requires
- php: >=7.1
- nette/forms: ^3.0
- nette/utils: ^3.0
Requires (Dev)
- nette/tester: ^2.0
Conflicts
- nette/forms: <3.0
- nette/utils: <3.0
This package is auto-updated.
Last update: 2024-09-07 04:38:21 UTC
README
Nette 插件,用于在输入框中选择日期或日期时间。
安装
使用 composer 安装
composer require venca-x/nette-date-time:v1.1.x-dev
要求
- PHP 7.1 或更高版本
- nette/forms 3.0 或更高版本
- nette/utils 3.0 或更高版本
- jQuery 1.9.1 或更高版本
- jQuery UI 1.10.2 或更高版本(仅限 DatePicker 和 DateTimePicker)
对于 Nette 2.3 使用分支 v1.0
使用示例
在 bootstrap.php 中添加注册行或添加 config.neon 中的行
//$configurator->createRobotLoader() // ->addDirectory(__DIR__) // ->addDirectory(__DIR__ . '/../libs') // ->register(); VencaX\NetteDateTime\NetteDateTimePicker::register(); // Create Dependency Injection container from config.neon file
使用
$form->addDate("name", "Label:", "type")
类型
- datetime - 设置日期和时间
- date - 设置日期
- month - 选择月(带年份)
- time - 设置时间(H:i)
- timesec - 设置带秒的时间(H:i:s)
在 presenter 中设置值
protected function concertForm() { $form = new UI\Form; $form->addDate("datetime", "Date time:", "datetime") ->setValue(date("d.m.Y H:i")); $form->addDate("date", "Date:", "date") ->setValue(date("d.m.Y")); $form->addDate("month", "Month:", "month") ->setValue(date("d.m.Y")); $form->addDate("month2", "Month2:", "month") ->setValue(date("m Y")); $form->addDate("time", "time:", "time") ->setValue(date("H:i")); $form->addDate("timesec", "timesec:", "timesec") ->setValue(date("H:i:s")); $form->addSubmit('send', 'Show'); }
或 presenter 设置 DatTime 值
protected function concertForm() { $form->addDate("datetime", "Date time:", "datetime") ->setValue(new DateTime()); $form->addDate("date", "Date:", "date") ->setValue(new DateTime()); $form->addDate("month", "Month:", "month") ->setValue(new DateTime()); $form->addDate("time", "time:", "time") ->setValue(new DateTime()); $form->addDate("timesec", "timesec:", "timesec") ->setValue(new DateTime()); $form->addSubmit('send', 'Show'); }
提交表单
此插件的所有数据都作为 Nette\Utils\DateTime 发送
$form->onSuccess[] = function ($form) { dump($form->getValues()); $this->terminate(); /* Nette\Utils\ArrayHash #6daf datetime => Nette\Utils\DateTime #8732 date => "2017-08-25 21:48:00.000000" (26) timezone_type => 3 timezone => "Europe/Prague" (13) date => Nette\Utils\DateTime #c228 date => "2017-08-25 21:53:19.000000" (26) timezone_type => 3 timezone => "Europe/Prague" (13) month => Nette\Utils\DateTime #cd2a date => "2017-08-25 21:53:19.000000" (26) timezone_type => 3 timezone => "Europe/Prague" (13) time => Nette\Utils\DateTime #7e7b date => "2017-08-25 21:48:00.000000" (26) timezone_type => 3 timezone => "Europe/Prague" (13) timesec => Nette\Utils\DateTime #d546 date => "2017-08-25 21:48:51.000000" (26) timezone_type => 3 timezone => "Europe/Prague" (13) */ };
要显示选定的值,请在 Nette\Utils\DateTime 上使用 ->format("xxx")
$a = $form->getValues(true); $a['datetime']->format('d.m.Y H:i'); $a['date']->format('d.m.Y'); $a['month']->format('m Y'); $a['time']->format('H:i'); $a['timesec']->format('H:i:s');
@layout.latte presenter
<link rel="stylesheet" media="screen,projection,tv" href="{$basePath}/css/blitzer/jquery-ui-1.10.4.custom.min.css"> <link rel="stylesheet" media="screen,projection,tv" href="{$basePath}/css/style.css"> <script type="text/javascript" src="{$basePath}/js/jquery-ui-1.10.4.custom.min.js"></script> <script type="text/javascript" src="{$basePath}/js/jquery-ui-timepicker-addon.js"></script> <script type="text/javascript" src="{$basePath}/js/netteDateTimePicker.js"></script>
npm
npm install jquery@3.*.* --save-dev //install last version 3.x
npm install jquery-ui-dist@1.*.* --save-dev //install last version 1.x
Grunt
concat: { js: { src: ['node_modules/jquery/dist/jquery.min.js', 'node_modules/popper.js/dist/umd/popper.min.js', 'node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery-ui-dist/jquery-ui.min.js', 'vendor/nette/forms/src/assets/netteForms.min.js', 'vendor/venca-x/nette-date-time/client/js/jquery-ui-timepicker-addon.js', 'vendor/venca-x/nette-date-time/client/js/netteDateTimePicker.js', 'src/js/main.js' ], dest: 'www/js/compiled.min.js' } }, cssmin: { target: { files: { 'www/css/main.min.css': [ 'node_modules/jquery-ui-dist/jquery-ui.min.css', 'vendor/venca-x/nette-date-time/client/css/style.css', 'www/css/main.css' ] } } }
从版本 1.0.x 迁移到 1.1.x
更改命名空间 从 Nette\Forms\NetteDateTime 到 VencaX\NetteDateTime\NetteDateTimePicker