忘了周二都干啥了(2005年9月6日,周二)

像牛牛一样工作着。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
<think>我们有两个需求: 1. 调整周末顺序,使周排在周六之前(即每周的第一天为周)。 2. 将周几的显示格式改为简写形式:、一、二、...、六。 解决方案: 1. 调整顺序:使用`firstDay: 0`(0代表周)来设置每周的第一天为周。 2. 修改显示格式:使用`dayHeaderFormat`选项,并提供一个函数或对象来定制期标题的显示。 具体步骤: - `dayHeaderFormat`可以是一个字符串,使用[期格式](https://fullcalendar.io/docs/date-formatting)中的令牌(tokens),也可以是一个函数。 - 对于简写形式,我们可以使用令牌`'dd'`,它会显示、一、二...六(在中文环境下)。 但是注意:在中文环境下,FullCalendar默认使用中文语言包时,`'dd'`应该会显示为“”、“一”等。 - 我们需要确保历使用中文语言包,设置`locale: 'zh-cn'`。 如果默认的`'dd'`不能满足(比如显示的不是单个字符),我们可以使用函数自定义。 示例代码: 使用`dayHeaderFormat: { weekday: 'short' }`,在中文环境下,`short`会显示为“周”、“周一”等,但我们只需要一个字,所以我们可以用函数自定义。 自定义函数示例: ```javascript dayHeaderFormat: function(arg) { // arg.date是一个Date对象 // 返回星期几的简写,我们只取最后一个字符(因为中文环境下,arg.date.toLocaleString('zh-cn', { weekday: 'short' })会返回“周”、“周一”等) // 但是注意:在中文中,我们通常用“”、“一”等一个字表示。 // 另外,也可以使用数组映射 var weekdays = ['', '一', '二', '三', '四', '五', '六']; return weekdays[arg.date.getDay()]; } ``` 但是,注意:在周视图下,`arg`是一个对象,包含`date`(该列的期)和`view`(当前视图)等信息。我们只需要返回一个字符串。 然而,FullCalendar提供了更简单的方式:使用`locale`和`dayHeaderFormat`的字符串格式。我们可以尝试: ```javascript locale: 'zh-cn', dayHeaderFormat: 'dd', // 在中文环境下,dd会显示为、一、二...六 ``` 所以,我们可以先尝试使用`dd`,因为这样最简单。 完整配置: ```javascript document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 设置周为第一天 locale: 'zh-cn', // 设置中文环境 dayHeaderFormat: { weekday: 'short' // 或者直接使用字符串 'dd' }, // 或者直接使用字符串:dayHeaderFormat: 'dd', // 但注意:在中文环境下,'short'会显示如“周”,而'dd'会显示“”,所以我们更希望用'dd' // 实际上,在FullCalendar中,期表头的默认格式就是'dd',所以设置locale为中文后,默认就是显示一个字。 // 因此,我们也可以不设置dayHeaderFormat,因为默认就是'dd'。 }); calendar.render(); }); ``` 验证: 在中文环境下,设置`locale: 'zh-cn'`后,默认的期表头格式就是“”、“一”、“二”等。所以我们可以省略`dayHeaderFormat`设置。 因此,只需要: - 设置`firstDay: 0` - 设置`locale: 'zh-cn'` 注意:如果项目中没有引入中文语言包,需要先引入。使用CDN方式: ```html <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js"></script> ``` 如果使用npm包,则需要导入: ```javascript import { Calendar } from '@fullcalendar/core'; import zhCnLocale from '@fullcalendar/core/locales/zh-cn'; // 然后在配置中加入locale: zhCnLocale 或者 'zh-cn' ``` 完整示例(使用CDN): ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <link href='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/main.min.css' rel='stylesheet' /> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js'></script> <script> document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 周为第一天 locale: 'zh-cn', // 使用中文 headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay' }, events: [ // 示例事件 { title: '会议', start: new Date() } ] }); calendar.render(); }); </script> </head> <body> <div id='calendar'></div> </body> </html> ``` 这样,周视图的表头将显示为:、一、二、三、四、五、六,且第一列是周。 相关问题: 1. 如何设置FullCalendar每周的第一天为周一? 2. 如何在FullCalendar中隐藏周末? 3. FullCalendar如何自定义期标题的显示格式? 4. 如何为FullCalendar添加中文语言支持?</think>在 FullCalendar 中实现周为首列并简写期标题,需结合 `firstDay` 和期格式化选项。以下是完整解决方案: ### 解决方案步骤 1. **设置周为首列** 使用 `firstDay: 0`(0 表示周): ```javascript firstDay: 0, // 周作为每周第一天 ``` 2. **简写期标题格式** 通过 `dayHeaderFormat` 自定义格式(需配合中文语言包): ```javascript locale: 'zh-cn', // 启用中文环境 dayHeaderFormat: { weekday: 'short' // 简写格式:/一/二等 }, ``` ### 完整示例代码 ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/main.min.css' rel='stylesheet'> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js'></script> <script> document.addEventListener('DOMContentLoaded', function() { const calendarEl = document.getElementById('calendar'); const calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 周为首列 locale: 'zh-cn', // 中文环境 dayHeaderFormat: { // 简写标题 weekday: 'short' // 显示为/一/二等 }, headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek' } }); calendar.render(); }); </script> </head> <body> <div id='calendar'></div> </body> </html> ``` ### 关键配置说明 | **配置项** | **值** | **作用** | |--------------------|-----------|----------------------------------| | `firstDay` | `0` | 设置周为每周第一天 | | `locale` | `'zh-cn'` | 启用中文语言环境 | | `dayHeaderFormat` | `{ weekday: 'short' }` | 简写期标题为单字符(/一/二等) | ### 效果对比 - **默认顺序**:周一 → 二 → 三 → 四 → 五 → 六 → - **调整后顺序**:**** → 一 → 二 → 三 → 四 → 五 → 六 - **标题格式**:从“星期/星期一”简化为“/一/二” ### 注意事项 1. **语言包依赖**:必须引入中文语言包(通过 CDN 或 npm 安装) 2. **多视图支持**:此配置同样适用于 `timeGridWeek` 等视图 3. **移动端适配**:自动响应式布局,无需额外设置 4. **高级自定义**:如需更复杂格式,可用函数自定义: ```javascript dayHeaderFormat: function(arg) { const days = ['', '一', '二', '三', '四', '五', '六']; return days[arg.date.getDay()]; } ``` [^1]: FullCalendar 期格式化文档:[Date Formatting](https://fullcalendar.io/docs/date-formatting)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值