123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>时间单位转换器</title>
- </head>
- <body>
- <h1>时间单位转换器</h1>
- <label for="input-number">输入数字:</label>
- <input type="number" id="input-number"><br>
- <label for="input-unit">输入单位:</label>
- <input type="radio" name="input-unit" value="year">年
- <input type="radio" name="input-unit" value="month">月
- <input type="radio" name="input-unit" value="day">日
- <input type="radio" name="input-unit" value="hour">时
- <input type="radio" name="input-unit" value="minute">分
- <input type="radio" name="input-unit" value="second" checked>秒
- <input type="radio" name="input-unit" value="millisecond">毫秒
- <input type="radio" name="input-unit" value="microsecond">微秒
- <input type="radio" name="input-unit" value="nanosecond">纳秒
- <br>
- <label for="output-unit">输出单位:</label>
- <input type="radio" name="output-unit" value="year">年
- <input type="radio" name="output-unit" value="month">月
- <input type="radio" name="output-unit" value="day">日
- <input type="radio" name="output-unit" value="hour">时
- <input type="radio" name="output-unit" value="minute">分
- <input type="radio" name="output-unit" value="second" checked>秒
- <input type="radio" name="output-unit" value="millisecond">毫秒
- <input type="radio" name="output-unit" value="microsecond">微秒
- <input type="radio" name="output-unit" value="nanosecond">纳秒
- <br>
- <label for="output-value">转换结果:</label>
- <input type="text" id="output-value" readonly>
- <script>
- function truncateDecimals(num, decimalPlaces) {
- if (typeof num !== 'number') {
- throw new Error('The input value must be a number.');
- }
- if (typeof decimalPlaces !== 'number' || decimalPlaces < 0) {
- throw new Error('The decimalPlaces value must be a non-negative number.');
- }
- const factor = Math.pow(10, decimalPlaces);
- const truncatedNum = Math.trunc(num * factor) / factor;
- return truncatedNum;
- }
- function convertUnits() {
- var inputValue = document.getElementById("input-number").value;
- var inputUnit = document.querySelector('input[name="input-unit"]:checked').value;
- var outputUnit = document.querySelector('input[name="output-unit"]:checked').value;
- var outputValue;
- // 进行单位转换的逻辑
- // 将输入的时间转换为纳秒
- var inputValueInNs;
- switch (inputUnit) {
- case "year":
- inputValueInNs = inputValue * 31536000000000000; // 年到纳秒的转换率
- break;
- case "month":
- inputValueInNs = inputValue * 2592000000000000; // 月到纳秒的转换率
- break;
- case "day":
- inputValueInNs = inputValue * 86400000000000; // 日到纳秒的转换率
- break;
- case "hour":
- inputValueInNs = inputValue * 3600000000000; // 时到纳秒的转换率
- break;
- case "minute":
- inputValueInNs = inputValue * 60000000000; // 分到纳秒
- // 分到纳秒的转换率
- break;
- case "second":
- inputValueInNs = inputValue * 1000000000; // 秒到纳秒的转换率
- break;
- case "millisecond":
- inputValueInNs = inputValue * 1000000; // 毫秒到纳秒的转换率
- break;
- case "microsecond":
- inputValueInNs = inputValue * 1000; // 微秒到纳秒的转换率
- break;
- case "nanosecond":
- inputValueInNs = inputValue; // 纳秒单位不需要转换
- break;
- default:
- inputValueInNs = 0;
- }
- // 将纳秒转换为输出单位
- switch (outputUnit) {
- case "year":
- outputValue = inputValueInNs / 31536000000000000; // 纳秒到年的转换率
- break;
- case "month":
- outputValue = inputValueInNs / 2592000000000000; // 纳秒到月的转换率
- break;
- case "day":
- outputValue = inputValueInNs / 86400000000000; // 纳秒到日的转换率
- break;
- case "hour":
- outputValue = inputValueInNs / 3600000000000; // 纳秒到时的转换率
- break;
- case "minute":
- outputValue = inputValueInNs / 60000000000; // 纳秒到分的转换率
- break;
- case "second":
- outputValue = inputValueInNs / 1000000000; // 纳秒到秒的转换率
- break;
- case "millisecond":
- outputValue = inputValueInNs / 1000000; // 纳秒到毫秒的转换率
- break;
- case "microsecond":
- outputValue = inputValueInNs / 1000; // 纳秒到微秒的转换率
- break;
- case "nanosecond":
- outputValue = inputValueInNs; // 纳秒单位不需要转换
- break;
- default:
- outputValue = 0;
- }
- document.getElementById("output-value").value = truncateDecimals(outputValue,2);
- }
- // 在输入框值或单位选择发生改变时触发转换
- document.getElementById("input-number").addEventListener("input", convertUnits);
- var inputUnits = document.querySelectorAll('input[name="input-unit"]');
- inputUnits.forEach(function (inputUnit) {
- inputUnit.addEventListener("change", convertUnits);
- });
- var outputUnits = document.querySelectorAll('input[name="output-unit"]');
- outputUnits.forEach(function (outputUnit) {
- outputUnit.addEventListener("change", convertUnits);
- });
- </script>
- </body>
- </html>
|