在坛友 @sunfei VPS剩余价值计算器v3.0的基础上进行了修改,现在把源码分享给大家。你可以放在php的运行环境里,起个名字就能直接访问。
demo链接
增加了:
1、付款周期二、三、五年的选项
2、增加了溢价金额和购买建议
以下为源码(如有bug,欢迎跟帖反馈)
<!DOCTYPE html
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VPS交易计算器</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h1 class="mb-4">VPS交易计算器</h1>
<form method="post">
<div class="form-group">
<label for="purchasePrice">续费价格:</label>
<input type="number" class="form-control" id="purchasePrice" name="purchasePrice" step="0.01" required>
</div>
<div class="form-group">
<label for="tradePrice">交易价格:</label>
<input type="number" class="form-control" id="tradePrice" name="tradePrice" step="0.01" required>
</div>
<div class="form-group">
<label for="currentDate">当前日期:</label>
<input type="date" class="form-control" id="currentDate" name="currentDate" value="<?php echo date("Y-m-d")?>" required>
</div>
<div class="form-group">
<label for="expiryDate">到期日期:</label>
<input type="date" class="form-control" id="expiryDate" name="expiryDate" required>
</div>
<div class="form-group">
<label for="paymentFrequency">付款周期:</label>
<select class="form-control" id="paymentFrequency" name="paymentFrequency" required>
<option value="yearly">年付</option>
<option value="halfyearly">半年付</option>
<option value="quarterly">季付</option>
<option value="monthly">月付</option>
<option value="two-yearly">二两付</option>
<option value="three-yearly">三年付</option>
<option value="five-yearly">五年付</option>
</select>
</div>
<button type="submit" class="btn btn-primary">计算剩余价值</button>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$purchasePrice = floatval($_POST["purchasePrice"]);
$currentDate = strtotime($_POST["currentDate"]);
$expiryDate = strtotime($_POST["expiryDate"]);
$paymentFrequency = $_POST["paymentFrequency"];
$remainingDays = floor(($expiryDate - $currentDate) / (24 * 60 * 60));
$remainingMonths = floor($remainingDays / 30);
$paymentFrequency_ = '';
$remainingValue = 0;
switch ($paymentFrequency) {
case 'quarterly':
$paymentFrequency_ = '季付';
$remainingValue = $purchasePrice / 90 * $remainingDays;
break;
case 'yearly':
$paymentFrequency_ = '年付';
$remainingValue = $purchasePrice / 365 * $remainingDays;
break;
case 'halfyearly':
$paymentFrequency_ = '半年付';
$remainingValue = $purchasePrice / 180 * $remainingDays;
break;
case 'monthly':
$paymentFrequency_ = '月付';
$remainingValue = $purchasePrice / 30 * $remainingDays;
break;
case 'two-yearly':
$paymentFrequency_ = '二两付';
$remainingValue = $purchasePrice / (365 * 2) * $remainingDays;
break;
case 'three-yearly':
$paymentFrequency_ = '三年付';
$remainingValue = $purchasePrice / (365 * 3) * $remainingDays;
break;
case 'five-yearly':
$paymentFrequency_ = '五年付';
$remainingValue = $purchasePrice / (365 * 5) * $remainingDays;
break;
}
$tradePrice = floatval($_POST["tradePrice"]);
$premium = $tradePrice - $remainingValue;
echo '<div class="mt-4">';
echo '<h3>计算结果:</h3>';
echo '<p>续费价格:' . $purchasePrice . '</p>';
echo '<p>剩余价值计算周期:' . $paymentFrequency_ . '</p>';
echo '<p>剩余价值:' . $remainingValue . '</p>';
echo '<p>交易价格:' . $tradePrice . '</p>';
echo '<p>溢价金额:' . $premium . '</p>';
if ($premium > 0) {
echo '<p>购买建议:存在溢价,请君三思而后行</p>';
} elseif ($premium < 0) {
echo '<p>购买建议:卖家血亏,快买,错过拍断大腿!</p>';
} else {
echo '<p>购买建议:不议价,良心卖家!</p>';
}
echo '</div>';
echo '<div class="mt-4">';
echo '<h3>计算过程:</h3>';
echo '<div class="accordion" id="calculationProcess">';
echo '<div class="card">';
echo '<div class="card-header" id="headingOne">';
echo '<h2 class="mb-0">';
echo '<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">';
echo '展开计算过程';
echo '</button>';
echo '</h2>';
echo '</div>';
echo '<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#calculationProcess">';
echo '<div class="card-body">';
echo '<p>剩余月份:' . $remainingMonths . ' 个月(剩余天数:' . $remainingDays . ' 天)</p>';
if ($paymentFrequency === 'quarterly') {
echo '<p>剩余价值 = 历史购买价格 / 90 * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / 90 * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
} elseif ($paymentFrequency === 'yearly') {
echo '<p>剩余价值 = 历史购买价格 / 365 * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / 365 * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
} elseif ($paymentFrequency === 'halfyearly') {
echo '<p>剩余价值 = 历史购买价格 / 180 * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / 180 * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
} elseif ($paymentFrequency === 'monthly') {
echo '<p>剩余价值 = 历史购买价格 / 30 * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / 30 * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
} elseif ($paymentFrequency === 'two-yearly') {
echo '<p>剩余价值 = 历史购买价格 / (365 * 2) * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / (365 * 2) * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
} elseif ($paymentFrequency === 'three-yearly') {
echo '<p>剩余价值 = 历史购买价格 / (365 * 3) * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / (365 * 3) * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
} elseif ($paymentFrequency === 'five-yearly') {
echo '<p>剩余价值 = 历史购买价格 / (365 * 5) * 剩余天数</p>';
echo '<p>剩余价值 = ' . $purchasePrice . ' / (365 * 5) * ' . $remainingDays . ' = ' . $remainingValue . '</p>';
}
echo '</div>';
echo '</div>';
echo '</div>';
echo '</div>';
echo '</div>';
}
?>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
666支持
建议价格货币换算
绑定!
@shuai #2 实时汇率是个问题
@sunfei #3 这么快就来了
@gm #4 、
应该有免费的api接口吧
帮顶
这是怎么计算的???什么神奇的算法?
@fengzone #8 这一版废了,已经回退了